반응형
3 개의 테이블로 최대 절전 조건 조인
다음을 얻기 위해 최대 절전 모드 기준을 찾고 있습니다.
Dokument.class는 Role roleId에 매핑됩니다.
Role.class에는 ContactPerson contactId가 있습니다.
Contact.class FirstName LastName
Contact 클래스에서 First 또는 LastName을 검색하고 연결된 문서 목록을 검색하고 싶습니다.
나는 다음과 같은 것을 시도했다.
session.createCriteria(Dokument.class)
.setFetchMode("role",FetchMode.JOIN)
.setFetchMode("contact",FetchMode.JOIN)
.add(Restrictions.eq("LastName","Test")).list();
"Dokument"클래스에 대한 "LastName"속성을 확인할 수 없다는 오류가 발생합니다.
누군가 조인이 모든 조인 테이블이 아닌 Dokument에서 검색하는 이유를 설명 할 수 있습니까? 모든 도움에 미리 감사드립니다!
가져 오기 모드는 연결을 가져와야한다고 만 말합니다. 연결된 엔터티에 대한 제한을 추가하려면 별칭 또는 하위 조건을 만들어야합니다. 나는 일반적으로 별칭 사용을 선호하지만 YMMV :
Criteria c = session.createCriteria(Dokument.class, "dokument");
c.createAlias("dokument.role", "role"); // inner join by default
c.createAlias("role.contact", "contact");
c.add(Restrictions.eq("contact.lastName", "Test"));
return c.list();
이것은 물론 Hibernate 참조 매뉴얼 에 잘 설명되어 있으며 Criteria에 대한 javadoc 에는 예제가 있습니다. 문서를 읽으십시오. 유용한 정보가 많이 있습니다.
참고 URL : https://stackoverflow.com/questions/8726396/hibernate-criteria-join-with-3-tables
반응형
'development' 카테고리의 다른 글
개체를 쿼리 문자열 형식으로 직렬화하는 방법은 무엇입니까? (0) | 2020.12.04 |
---|---|
품질을 100으로 설정하면 JPEG가 손실되지 않습니까? (0) | 2020.12.04 |
서비스 애플리케이션 및 Google Analytics API V3 : 서버 간 OAuth2 인증? (0) | 2020.12.04 |
폴더 또는 JAR에서 런타임에 클래스를로드하는 방법은 무엇입니까? (0) | 2020.12.04 |
새 셸 세션을 시작할 때마다 TMUX를 활성화하려면 어떻게해야합니까? (0) | 2020.12.04 |