문서의 선택한 두 판 사이의 차이를 보여줍니다.
양쪽 이전 판 이전 판 | 다음 판 양쪽 다음 판 | ||
java:hibernate:gotchas [2017/11/30 22:17] kwon37xi [쿼리 로그를 남겨라] |
java:hibernate:gotchas [2020/01/14 13:21] kwon37xi [hashCode와 equals를 항상 구현한다] |
||
---|---|---|---|
줄 11: | 줄 11: | ||
따라서 ID를 equals/ | 따라서 ID를 equals/ | ||
+ | |||
+ | ===== to-many 관계에 대해서 fetch join은 안하는게 낫다 ===== | ||
+ | * to-many 관계에 대해서 fetch join 을 하면 부모측이 자식측(many)의 갯수만큼 중복으로 결과 갯수가 늘어난다. | ||
+ | * 이를 해결하려면 '' | ||
+ | * to-many 관계에 대해서 '' | ||
+ | * 때문에 하이버네이트는 SQL에 limit을 걸리 않고 limit 없이 전체 데이터를 조회한 뒤에 메모리에서 parent 데이터를 원하는 limit 갯수만큼 끊어서 반환한다. | ||
+ | * 이는 엄청난 성능저하로 이어진다. | ||
+ | * 결과적으로 특별한 이유가 없다면 **to-many 관계에 대해서는 fetch join을 하지 말고 항상 '' | ||
+ | * [[java: | ||
===== One-To-One 과 Many-To-One 관계를 조심하라 ===== | ===== One-To-One 과 Many-To-One 관계를 조심하라 ===== |