데이터베이스에서 필요한 레코드를 검색 할 수 없다. 클래스는 다음과 같다. 어떤 사용자가 비활성 바구니를 가지고 있는지를 알아야한다. 코드 위Hibernate가 필요한 레코드를 가져 오지 않는다.
Class Person {
}
Class User extends Person{
private Set<Basket> basketlist;
}
Class Prof extends User {
}
Class Basket{
private String active;
}
Criteria cre = session.createCriteria(User.class, "user")
.createAlias("user.basketlist", "basket");
ProjectionList pl = Projections.projectionList();
pl.add(Projections.property("user.id").as("id"));
cre.setProjection(pl);
cre.add(Restrictions.eq("basket.active", null));
IDs = cre.list();
는 다음 쿼리를 (내가이 쿼리에서 교수를 포함하는 이유는 확실하지 않다 왜 비활성 바구니를 사용자에게 표시되지 않습니다) 내 최대 절전 모드
을의select this_.id as y0_ from User this_ inner join Person this_1_ on
this_.id=this_1_.id left outer join Prof this_2_ on this_.id=this_2_.id inner join
User_basketlist basketl3_ on this_.id=basketl3_.User_id inner join basketlist
basketl1_ on basketl3_.basketlist_id=basketl1_.id where basketl1_.active=?
버전 생성
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>4.2.1.Final</version>
<type>jar</type>
</dependency>
어떤 버전의 최대 절전 모드를 사용하고 있습니까? –
질문이 업데이트되었습니다. 4.2.1. 최종 – J888