2014-10-08 58 views
0

我有2个实体的提取物是这样的解决财产。无法在Hibernate中的标准

有了这根标准:

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")); 

预先感谢您

+0

可能重复[未能解决物业休眠](http://stackoverflow.com/questions/26176915/could-not-resolve-property-休眠) – 2014-10-08 09:49:53

+1

在你的代码中有很多注释缺失,但我们认为它们存在。 – 2014-10-08 10:04:34

回答

1

再添加一个行。

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

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

现在工作在远低于

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

我没有尝试你的代码,但是,例如,这个查询不工作:Criteria criteria = sessionFactory.getCurrentSession()。createCriteria(Visita.class).createAlias(“pdv”,“pdv”).add(Restrictions。 eq(“pdv.zona”,“example”));并且我为pdv创建了别名... – Juanjo 2014-10-08 10:12:31

+0

“pdv.zona”应该可以工作,并且zona字段用@Column对其进行注释? – 2014-10-08 10:19:20

+0

它没有用@column注释,因为它与DB中的名称相同。我应该注明它吗?我认为当它的名称与数据库中的名称相同时,它不需要该注释 – Juanjo 2014-10-08 12:00:29