【发布时间】:2009-11-02 23:16:00
【问题描述】:
我在 Hibernate 中为学生设置了以下课程。 学生类包含一组分数对象。每个分数对象都包含分数、学生 ID 和一个 GradeEvent 对象。 成绩事件对象包含日期、描述等内容。 我想获取一个学生并加载所有关联的分数对象以及与已获取的每个分数对象关联的 GradeEvent 对象。下面的 HQL 让我可以访问一个 Student 对象,该对象的字段为 GradeEvent 接受的关联 Score 对象
"from Student student left join fetch student.scores where student.studentId=1"
如何在查询时加载gradeEvent 对象,以便在会话关闭后访问它?我已将映射文件的相关部分放在下面。
学生
<set name="scores" inverse="true" lazy="true" table="score" fetch="select">
<key>
<column name="student_id" not-null="true" />
</key>
<one-to-many class="gradebook.model.Score" />
</set>
分数
<many-to-one name="student" class="gradebook.model.Student" update="false" insert="false" fetch="select">
<column name="student_id" not-null="true" />
</many-to-one>
<many-to-one name="gradeEvent" class="gradebook.model.GradeEvent" update="false" insert="false" fetch="select">
<column name="event_id" not-null="true" />
</many-to-one>
等级事件
<set name="scores" inverse="false" lazy="true" table="score" fetch="select">
<key>
<column name="event_id" not-null="true" />
</key>
<one-to-many class="gradebook.model.Score" />
</set>
【问题讨论】: