728x90
반응형
- 객체지향적으로 JPA를 사용하기 위해 필요하다. 역방향 조회 시 절차지향적으로 코딩하는 것을 안하기 위함이다.
-> 양방향 연관관계가 없다면, TeamRepository.find -> MemberRepository.find를 통해 Team에 속한 Member 들을 찾아야하는데, Team 엔티티 내부에 List<Member> members를 두고 양방향 연관관계를 맺어두었다면, 엔티티 탐색처럼 team.getMembers()로 멤버 조회 가능
-> 양방향 관계를 만들면 @toString, @JsonBackRefrence 등을 처리해줘야하는 번거로움은 있다. 다만 이 내용은 역참조를 할 때의 편리성과 상충되는 것이다. 역참조를 한 번 만들어두면, 사용자들은 편하게 사용할 수 있다. 단방향이라면 각 Repository를 의존해야하는 단점도 있다.
- 이때 Instancio의 자동 set에 주의해야한다.
-> Team에 필드로 표현된 Team의 members 객체를 null로 두는게 아니라 마음대로 랜덤하게 넣어버림. Instancio의 본질적 속성으로, null로 하는 Setting을 모두 넣어주던가, 아니면 members 같은 역방향 관계 속성을 null로 반드시 넣어줘야한다.
- 결국 선택의 문제이다. 시니어의 역할은 선택의 문제까지 필요한 근거들을 나열할 수 있는 지식이 있어야하고, 그것들을 팀원들과 이성적이고 건설적으로 잘 토론할 수 있어야하는 것 같다.
- cascade는 사이드 이펙트가 있을 수 있어서 실무에서는 거의 사용하지 않는다.
728x90
반응형
'Programming-[Backend] > JPA' 카테고리의 다른 글
[TIL] JPA @ManyToMany 적용, 테이블 이름과 컬럼, 저장 처리 방식 (0) | 2023.05.19 |
---|---|
[링크] could not initialize proxy - no Session (0) | 2023.05.02 |
[TIL] JPA Expressions Date 오늘 날짜 또는 상수 값 넣기 : dateTemplate, SQL function(내장함수) (0) | 2022.05.17 |
[링크] JPA Map 결과 리턴(결과 집합 그루핑) (0) | 2022.02.21 |
[TIL][에러] SQL-Server - hibernate; JPA 적용 Sort, Paging 시 데이터 누락, 중복 문제 (0) | 2021.12.18 |