0

我有 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”和“PuntoDeVentaCategoria”(有和没有 createAlias)的不同字段进行限制,但我得到“无法解析属性”的异常,例如:

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

先感谢您

4

1 回答 1

1

再添加一行。

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

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

现在它以下面的方式工作

criteria.add(Restrictions.eq("categoria.descripcion", "example"));
于 2014-10-08T09:51:40.967 回答