Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Hibernate-按关联属性筛选_Java_Hibernate - Fatal编程技术网

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;