728x90
https://techblog.woowahan.com/2595/
사이드 프로젝트를 하면서 다대다 관계에 많은 고민을 하게 되었는데 구글에 검색해보니 많은 분들이 JPA에서 다대다 관계 즉, M:N관계를 설정할때 많은 고민을 하는 것 같습니다.
결론부터 말하자면 M:N, 다대다 관계는 중간에 엔티티를 하나 두는 방식을 사용하는 것을 권장하고 있습니다.
개발자들 사이에 다대다 관계를 설정할 때 JPA @Manytomany 기능을 사용하지 않는것은 국룰로 자리잡고 있는것 같습니다.
그건 @Manytomany의 특성 때문에 그렇습니다. 개발자가 예상하지 못하는 쿼리들이 생각보다 많이 나가고 그 때문에 성능이 많이 떨어집니다.
이분 블로그에 은근 잘 정리되어 있는데 요약해보면 cascade옵션 때문에 삭제되는 데이터와 연관된 모든 데이터를 일단 지우고 필요한 데이터는 다시 insert 하는 구조로 진행됩니다.
굳이굳이 다 지워놓고 1,3을 insert 합니다.
이러한 예측할 수 없는 쿼리등의 문제로 manytomany는 활용을 지양하는 편입니다.
728x90
'IT 이야기 > Java' 카테고리의 다른 글
[JWT] Java Web Token (0) | 2021.11.02 |
---|---|
[JPA] UUID로 findBy 조회가 안되는 이유 (0) | 2021.08.15 |
springframework.http.converter.HttpMessageNotWritableException: Could not write JSON: JsonObject; (1) | 2021.08.08 |
[Bean] JAVA vs Spring (0) | 2021.07.27 |
JPA Default value 적용 - @DynamicInsert (0) | 2021.07.20 |
댓글