문서의 이전 판입니다!
builder.like( root.<MyEntity, String, String>joinMap("properties").value(), "example%");
builder.like(root.join(Entity_.elementCollection), '%keyword%'))
@ElementCollection
의 fetch 속성을 EAGER로 설정했으면 Hibernate에서 제공하는 @Fetch로 긁어올 방식을 설정해 주어야 한다. → JPA - Hibernate Specific WTF Rules → 해보니깐 @Fetch 안해도 괜찮은데?? 오히려 @Fetch가 안먹는 듯하다.@ElementCollection
으로 @Embeddable
을 저장할 경우 관계 Key가 되는 값이 부모의 PK가 아닌 다른 컬럼이어도 작동은 한다. 하지만 부모의 컬렉션을 로딩한 상태에서 자식들을 로딩하면 각 부모 객체가 동일한 관계 Key를 가지고 있을 경우 별다른 오류 메시지 없이 오류로 간주하고 rollback이 된다.