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