我有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"));
提前谢谢
答案 0 :(得分:1)
再添加一行。
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(Visita.class).createAlias("pdv", "pdv");
criteria.createAlias("pdv.categoria", "categoria");
现在它在下面工作
criteria.add(Restrictions.eq("categoria.descripcion", "example"));