无法在Hibernate标准中解析属性

时间:2014-10-08 09:46:44

标签: java hibernate criteria criterion

我有2个实体,其摘录如下:

public class Visita {
    @ManyToOne(fetch=FetchType.LAZY)
    @JoinColumn(name="pdv_uid")
    private PuntoDeVenta pdv;
}

public class PuntoDeVenta {
    private Integer idclient;

    private String zona;

    @ManyToOne
    @JoinColumn(name="pdv_categoria_uid", nullable=true)
    private PuntoDeVentaCategoria categoria;
}

public class PuntoDeVentaCategoria {
    private String descripcion;
}

我尝试对不同字段进行限制,其中一些有效,其中一些不适用。

使用此根标准:

Criteria criteria =   sessionFactory.getCurrentSession().createCriteria(Visita.class).createAlias("pdv", "pdv");

我尝试使用" PuntoDeVenta"的不同字段进行限制。和#34; PuntoDeVentaCategoria" (有和没有createAlias)我得到例外"无法解析属性",例如:

Criteria criteria =   sessionFactory.getCurrentSession().createCriteria(Visita.class).createAlias("pdv", "pdv").add(Restrictions.eq("pdv.categoria.descripcion", "example"));

提前谢谢

1 个答案:

答案 0 :(得分:1)

再添加一行。

Criteria criteria =   sessionFactory.getCurrentSession().createCriteria(Visita.class).createAlias("pdv", "pdv");

criteria.createAlias("pdv.categoria", "categoria");

现在它在下面工作

criteria.add(Restrictions.eq("categoria.descripcion", "example"));