我有以下代码:
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();
但是 Hibernateterminology.definition
出现异常 org.hibernate.QueryException: could not resolve property: terminology.definition of: net。* .术语
尽管事实上有一个财产Term
:
@OneToOne(mappedBy = "term")
public Terminology getTerminology() { return terminology; }
并Terminology
有一个@Basic
名为definition
. 我可以用一个看起来很愚蠢的别名来修复它:
session.createCriteria(Term.class).createAlias("terminology", "terminology")
但这是不可取的。