收集和嵌套预测的预测

时间:2010-05-07 11:09:06

标签: java hibernate collections

第一部分是如何投资收藏?

我们可以对收集元素应用预测吗? 例如

    class User{
    private address List<Address>;
}

class Address{
    private String city;
    private String state;
}

现在我可以加载User类的地址属性吗?使用如下代码:

criteria.setProjection(Projections.property("Address"));

但它始终返回null,即使对象确实设置了地址字段。 是否有任何不同的方式来项目收集项目?

第二部分:嵌套投射。 考虑如上所示的相同模型,但不是有一个Address集合,而是有一个元素。 现在如果我只想加载Address的“city”属性,这是User类的一部分?

我尝试过:

Projections.property("Address.City")

但是它给了我错误,声明无法解析属性:User的“Address.City”。

Projecting Collection元素和Nested Projections是否有任何规定?

1 个答案:

答案 0 :(得分:1)

Hibernate区分大小写。因此,不要使用 地址。 C ,而是使用 a 地址。 c 。如果它不起作用,请尝试使用别名,例如:

DetachedCriteria criteria = DetachedCriteria.forClass(User.class);
criteria.createAlias("address", "addAlias");
criteria.setProjection(Projections.property("addAlias.city"));