第一部分是如何投资收藏?
我们可以对收集元素应用预测吗? 例如
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是否有任何规定?
答案 0 :(得分:1)
Hibernate区分大小写。因此,不要使用 地址。 C ,而是使用 a 地址。 c 。如果它不起作用,请尝试使用别名,例如:
DetachedCriteria criteria = DetachedCriteria.forClass(User.class);
criteria.createAlias("address", "addAlias");
criteria.setProjection(Projections.property("addAlias.city"));