标准,如何访问子类属性

Eil*_*osa 4 java hibernate criteria criteria-api

很奇怪我找不到一些简单的东西,我有2个实体,一个在另一个内,我的问题是如何从子实体访问一个属性?

实体1

@Getter
@Setter
@Entity
public class ObjectA{
    String name;
    String surname;
    ObjectB B;
}
Run Code Online (Sandbox Code Playgroud)

实体2

@Setter
@Getter
@Entity
ObjectB{
    String family;
    String range;
}
Run Code Online (Sandbox Code Playgroud)

我想要的是通过标准搜索访问familly和range,所以我做了这个:

public List<ObjectA> search(String name, String surname, String family, String range) {
    Criteria c = HibernateUtil.getSessionFactory().getCurrentSession().createCriteria(ObjectA.class, "a");

if (!name.equals("")) {
    c.add(Restrictions.eq("a.name", name));
}
if (!surname.equals("")) {
    c.add(Restrictions.eq("a.surname", surname));
}
if (!family.equals("")) {
    c.add(Restrictions.eq("a.B.family", family));
}
if (!range.equals("")) {
    c.add(Restrictions.eq("a.B.range", range));
}
return c.list();
Run Code Online (Sandbox Code Playgroud)

}

可以访问姓名和姓氏,但家庭和范围不能.'无法解决财产问题'我该怎么办?

谢谢= D.

WeM*_*are 5

您必须为子类属性创建别名才能访问它.

请查看以下手册的第15.4节http://docs.jboss.org/hibernate/orm/3.3/reference/en/html/querycriteria.html