강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

HelloWorld님의 프로필 이미지
HelloWorld

작성한 질문수

실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화

API 개발 고급 정리

연관관계 편의 메서드/추가쿼리 관련 질문이 있습니다.

작성

·

145

0

삭제된 글입니다

답변 1

1

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. JW Jung님

질문을 여러번 읽어보았지만, 정확하게 어떤 점이 궁금하신지 이해가 잘 되지 않습니다.

마지막에 1,2,3,4를 적어주셔서 이 부분에 제가 아는 한에서 답을 드리겠습니다.

1. 마지막 그림의 위 방법(연관관계 편의 메서드 변형?)이 맞는 방법인까요? 아니라면 Category, Subdivision등 다른 엔티티에서 이를 관리하는 더 좋은 방법이 있을까요? 

-> 코드상 정확하게 안보이지만 cascade를 사용하신 것 같아요. cascade는 가급적 사용하지 마시고 각각의 리포지토리가 엔티티를 관리하는 것이 더 좋아보입니다. cascade는 개인 소유의 엔티티에 사용하는 것을 권장드립니다. (고민이 된다면 사용하지 않는 것이 더 좋습니다.)

2. 마지막 그림의 아래 방법은 맞는 방법인가요? 만약 맞다면 (엔티티 내부라고하더라도) 분기문을 여러개 가지게 되는데 괜찮은 방법인가요?

-> 1번에 말씀드린 내용을 적용하면 어느정도 자연스럽게 해결될 것 같습니다.

3. 서비스 계층에서 삼항 연산자로 분기문을 만든것이 계속 걸리는데 더 좋은 방법이 있을까요?

-> 1번에 말씀드린 내용을 적용하면 어느정도 자연스럽게 해결될 것 같습니다.

4. 캡슐화로 서비스 계층을 더 얇게 만드는 방법이 있을까요?

-> 저는 이정도도 괜찮은 것 같습니다.

감사합니다.

HelloWorld님의 프로필 이미지
HelloWorld
질문자

아! 메인 질문은 연관관계 편의 메서드를 올바르게 설정했는지가 질문이었습니다. 수업시간에는 team.getMember( ).add(this)와 같이 해결했는데 저는 null 할당-> new Category 할당 으로 처리를 했습니다.

>> Q. 연관관계를 null로 만들고 다시 할당하면추가쿼리가 안 발생하는데 이렇게 해도 괜찮을까요? 




질문 하려고 자료를 정리하다보니까 과연 저 방법이 맞는 것일까? 에 대해 또 의구심이 들었습니다. 나머지 답변 감사합니다. 추가로 일단 cascade는 다 끊었던 상태입니다. 

HelloWorld님의 프로필 이미지
HelloWorld

작성한 질문수

질문하기