1
두 개의 클래스 A와 B가 있습니다. 클래스 A에는 클래스 B의 오브젝트 콜렉션이 있습니다. 클래스 B에는 필드 X가 있습니다. 클래스 A의 객체 목록을 반환 할 수 있기를 원합니다. 객체 컬렉션 B에는 속성 X의 특정 값을 갖는 객체가 있습니다. 가능합니까?JPA2 기준 - 지정된 값을 가진 다른 요소가있는 콜렉션을 갖는 요소 선택
이Root<A> root = criteriaQuery.from(A.class);
criteriaQuery.select(root);
criteriaQuery.where(root.get("bCollection").get("x").in("value"))
그러나 물론이 작동하지 않습니다
지금까지 내가 좋아하는 뭔가를 시도했다. 어떻게 처리할까요? 클래스 B는 다음과 같이 중첩 된 구성 요소로 매핑됩니다.
<set name="bCollection" table="bCollection">
<key column="a_id" />
<composite-element
class="example.B">
<many-to-one name="x" column="b_id" not-null="false"
cascade="none" foreign-key="b_fk" />
</composite-element>
</set>
누군가가 ... 감사드립니다. 물론
확인 :)! 그러나 B 유형의 오브젝트 콜렉션이 A에 직접 있지는 않지만 A 클래스의 일부 클래스 C에있는 경우 동일한 작업을 수행하는 방법은 무엇입니까? 이 클래스 C는 구성 요소로 매핑되므로 계층 구조에 아무 것도 추가하지 않습니다. – user2902211