Java Hibernate-按关联属性筛选
我有一个Java Hibernate-按关联属性筛选,java,hibernate,Java,Hibernate,我有一个ExamResult类,该类有一个指向其父类Exam的链接 我希望根据考试结果的布尔属性进行筛选 List<ExamResult> examResults = session .createCriteria(ExamResult.class) .createCriteria("exam") // 3. .add( Restrictions.eq("prima
ExamResult
类,该类有一个指向其父类Exam
的链接
我希望根据考试结果的布尔属性进行筛选
List<ExamResult> examResults = session
.createCriteria(ExamResult.class)
.createCriteria("exam") // 3.
.add( Restrictions.eq("primaryExam", Boolean.TRUE) ) // 4.
.list();
我不确定我的做法是否正确。我不清楚这个问题
我过去的关系可以从中看出
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>();
/----双向关联
@OneToMany(mappedBy=“考试”)
private final List examResults=new ArrayList();
问题在于ExamResult
映射中的
@Column(name="exam_id", nullable=false)
private Exam exam;
否则,假设您在
Exam
中有布尔属性primaryExam
,您的条件看起来很好,即使您正在使用本教程,您是否可以显示您的实际映射,以便每个人都可以查看它?:)谢谢@Arthur Thomas-我已经更新了相关的关联。谢谢-现在显示的是org.hibernate.MappingException:实体映射中的重复列:检查列:检查id(应使用insert=“false”update=“false”进行映射)
-我猜重复的专栏与教程中的hibernate技巧有关。你能粘贴完整的ExamResult吗?尝试删除name=“exam\u id”部分。如果您没有映射到一个已经存在的数据库,那么它是可用的。顺便说一句,如果一个答案是有用的,不要忘记投票或接受它:-)。
@Column(name="exam_id", nullable=false)
private Exam exam;