我有两个班级
class House {
String id
Long size
Resident resident
}
class Resident {
String id
String name
}
我想要的是一份居民名单,但我需要一些限制。 E.q.在大小e.q. > 20并将结果限制为10
居民没有提到众议院。
我真的不知道如何继续这个。
我试过了:
Criteria crit = session.createCriteria(House.class);
crit.add(Expression.ge("size", 20));
crit.setMaxResults(10);
crit.addOrder(Order.desc("size"));
return crit.list();
但我不知道如何获得与居民的连接
答案 0 :(得分:3)
请尝试以下代码:
Criteria crit = session.createCriteria(House.class);
crit.add(Expression.ge("size", 20));
crit.setMaxResults(10);
crit.addOrder(Order.desc("size"));
crit.setFetchMode("resident", FetchMode.JOIN);
crit.setProjection(Projections.property("resident"));
return crit.list();
答案 1 :(得分:2)
“居民没有提到众议院” - 当没有关联时,AFAIK Hibernate Criteria不能对给定条目的另一个条目创建限制。
因此,您无法为Criteria
创建Resident.class
并在其中添加Restriction
。
您可以尝试为Criteria
创建House.class
,添加所需的Restriction
,然后设置Projection
以获取Resident.class
实例。
到目前为止你尝试了什么?