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

궁금이님의 프로필 이미지

작성한 질문수

자바 ORM 표준 JPA 프로그래밍 - 기본편

값 타입 컬렉션

일대다 연관관계

해결된 질문

작성

·

403

0

[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)

[질문 내용]
일대다 연관관계가 업데이트 쿼리 나가는 게 아무래도 영속성 컨텍스트 기준으로 쿼리가 나가기 때문에 그런걸까요?

 

일단 테이블의 연관관계에서는 무조건 다 쪽이 외래키를 가지고 있기 때문에, JPA쪽에서도 그걸 알고 그냥 Member 먼저 insert 한 다음 id 가져와서 Address insert 하면서 같이 주면 효율적이지 않을까 하는데..

뭔가 이 쓰기지연 SQL 저장소 여기 나가는 것도 알아서 최적화 되고 이런 게 있었던 거 같은데.. 아닌가.. 작동 방식이 차곡차곡 쌓여서 나중에 나간다 이렇게 알고 있긴 한데..

address insert 하는 쿼리문들을 member insert하는 쿼리문 바로 뒤에 붙여버리면 좋지 않을까 하는데..

 

이런 거 하나하나 다 따지기에는 너무 많은 케이스가 있고 영속성 컨텍스트 기준으로 나가기 때문에 그런건가요..?

답변 1

1

안녕하세요. 궁금이님, 공식 서포터즈 y2gcoder입니다.

개인적으로는 말씀하셨던 것처럼 실무에서는 매우 다양한 상황을 고려해야 하기 때문에, JPA에서는 원칙을 정한 후 개발하지 않았을까 생각이 듭니다. 모든 요구사항에 대응할 수 있으면 좋지만 버그를 동반할 여지가 크기 때문에, 트레이드 오프를 따져 원칙대로 제한을 두면서 기능을 제공하는 것이 아무래도 안정성이 좋기 때문입니다. 실제로 실무 개발할 때도 무조건적으로 기능을 개방하지 않고, 입력값을 제한하고 의도하지 않은 작동을 최대한 지양하는 방향으로 개발하는 것과 같은 맥락이지 않을까 생각합니다 :)

감사합니다.