db설계기본개념_및_연관관계매핑
db설계기본개념_및_연관관계매핑
필기 가자
- 외래키는 대규모 트래픽시 성능 저하, 마이그레이션시 제약 때문에 안쓰기도 함.
- 대안으로 에플리케이션 레벨에서 관계를 정의하여 사용.(jpa)
- 분산시스템에서는 쓸수가 없음.
- 처음 보는것 @JsonManagedReference
@JsonManagedReference는 Java에서 Jackson 라이브러리를 사용해 JSON 직렬화/역직렬화를 할 때 순환 참조(circular reference) 문제를 해결하기 위해 사용됩니다. 이 어노테이션은 부모-자식 관계에서 “부모 객체” 쪽에 붙이며, Jackson이 JSON 직렬화를 수행할 때 자식 객체를 정상적으로 포함하되, 역참조로 인해 무한 루프가 발생하지 않도록 도와줍니다.
주요 역할 부모-자식 관계 정의: @JsonManagedReference는 직렬화 과정에서 부모 객체가 자식 객체를 참조할 수 있도록 설정합니다. 순환 참조 방지: 자식 객체가 부모를 다시 참조할 때 순환 참조로 인해 발생하는 무한 루프 문제를 방지합니다. 데이터 무결성 유지: 직렬화 시 자식 데이터를 포함하되, Jackson이 적절히 참조를 끊어 순환을 방지하도록 돕습니다. 함께 사용하는 어노테이션: @JsonBackReference @JsonManagedReference는 부모 필드에 사용되고, @JsonBackReference는 자식 객체에서 부모를 참조하는 필드에 사용됩니다.
필기2
- oneToMany는 선택, manyToOne은 필수.
- findAllByCategory_Id(categoryId)처럼, 엔티티가 아닌 id타입으로 찾는 method도 만들 수 있다.
This post is licensed under CC BY 4.0 by the author.