1
我有以下代码:嵌套属性路径
Session session = (Session) em.getDelegate();
Criteria c = session.createCriteria(Term.class);
c.setProjection(
Projections.projectionList()
.add(Projections.property("id"))
.add(Projections.property("qualifier"))
.add(Projections.property("preferred"))
.add(Projections.property("terminology.definition"))
);
c.list();
但对Hibernate的扼流圈terminology.definition
与异常 org.hibernate.QueryException:无法解析属性:的terminology.definition:净。 * .Term
尽管存在Term
属性:
@OneToOne(mappedBy = "term")
public Terminology getTerminology() { return terminology; }
和Terminology
有一个名为definition
一个@Basic
属性。我可以用一个看起来很愚蠢的别名修复它:
session.createCriteria(Term.class).createAlias("terminology", "terminology")
但是这是不希望的。
因为hibernate使用它来加入你的表格,所以你需要你看起来很愚蠢的别名。 _Projections_就像查询的select子句,所以你只能在你的代码中声称它不属于你的实体_Term_作为一个属性的术语属性 – richarbernal