2

我有两节课

class House {
    String id
    Long size
    Resident resident
}

class Resident {
    String id
    String name
}

我想要的是一份居民名单,但我需要对房子进行一些限制。Eq 大小 eq > 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();

但我不知道如何连接到 Resident

4

2 回答 2

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();
于 2012-10-30T09:20:12.920 回答
2

“居民没有对房子的引用” - 当没有关联时,AFAIK 休眠标准无法对给定条目的另一个条目创建限制。

所以你不能在那里创建一个CriteriaforResident.class和 add Restrictions。

您可以尝试Criteria为您的 s 创建 a House.class,添加所需Restriction的 s,然后设置 aProjection以获取您的Resident.class实例。

你试过什么了?

于 2012-10-30T08:52:55.943 回答