나는 Hibernate Criteria에 익숙하지 않고,이 질문이 너무 단순하다면 사과한다. 그러나 어떤 도움을 주시면 감사하겠습니다!Hibernate Criteria 컬렉션 프로퍼티 (subquery?)
CD와 트랙의 두 엔티티가 있습니다. 각 CD에는 트랙 개체 모음이 있습니다. 각 트랙에는 "title"이라는 String 필드가 있습니다. 이제 Hibernate Criteria를 사용하여 "title"이 설정된 값을 가진 트랙이있는 모든 CD를 검색하려고합니다. 내가 지금까지 가지고있는 것은 :
//session handling
Criteria cdCriteria = session.createCriteria(CD.class);
DetachedCriteria trackCriteria = DetachedCriteria.forClass(Track.class);
trackCriteria.add(Restrictions.eq("title", "SomeTitle"));
trackCriteria.setProjection(Projections.property("title"));
criteria.add(Subqueries.exists(trackCriteria));
List<CD> cds = criteria.list();
이것은 트랙 제목에 관계없이 모든 CD를 반환합니다. 누구 제안이 있습니까?
미리 감사드립니다.
고마워요! 나는 당신의 마지막 해결책을 조인과 함께 할 수 있었다. 다른 두 가지는 매핑 예외로 실패합니다. Unknown entity : null "track.cd"로 인한 것입니다. "cd"는 Track의 필드가 아니기 때문입니다. 관계는 CD에서 트랙까지의 방향입니다. 아니면 내가 여기 잘못 생각하는거야? – user1119371
아니, 네가 맞아. 연관성이 양방향이고 트랙에 cd 필드가 있다고 가정했습니다. –
하위 쿼리를 사용하여 해결할 수 없습니까? 배치가 양방향이 아니기 때문에 조인을 사용하는 것이 유일한 방법일까요? – user1119371