我有一个ExamResult
类,其中包含一个返回其父级Exam
的链接。
我希望通过考试结果的布尔属性进行过滤。
List<ExamResult> examResults = session
.createCriteria(ExamResult.class)
.createCriteria("exam") // 3.
.add( Restrictions.eq("primaryExam", Boolean.TRUE) ) // 4.
.list();
我可以正确检索所有行而不添加第3行和第4行。使用这些附加行我会收到以下错误:
org.hibernate.QueryException: not an association: exam
我不确定我是否正确地走这条路。我不清楚hibernate tutorial。
我使用的关系可以在this tutorial中找到。
ExamResult 有:
// bidirectional association! Needed to trick hibernate ;P
@Column(name="exam_id", nullable=false, updatable=false, insertable=false)
private Long exam;
考试有
//----bidirectional association
@OneToMany(mappedBy="exam")
private final List<ExamResult> examResults = new ArrayList<ExamResult>();
答案 0 :(得分:3)
问题是您的ExamResult
映射应该是:
@Column(name="exam_id", nullable=false)
private Exam exam;
否则,假设primaryExam
中有布尔属性Exam
,您的条件看起来很好。