我正在尝试学习如何使用 Hibernate 来实现 Java Object Persistence。具体来说,我试图弄清楚如何实现单向一对多映射。我已经阅读了休眠文档和有关该主题的大量 Stackoverflow 问题,但它们并不完全清楚,所以我想知道实现它的正确方法是什么。
这是我尝试映射的 Java 对象类型的(极其简化的)示例:
public class Student {
private List<StudentGrade> grades;
}
public class StudentGrade {
private char letterGrade;
private double percentageGrade;
}
所以问题是,我如何编写 hbm.xml 文件来映射它?
hibernate 文档表明,在这种情况下,放置在 Student 的映射文件中应该足够了。当然,假设我已经完全充实了 Student 和 StudentGrade 的映射文件。
<many-to-one name="StudentGrade" column="grade_id" />
但是,它只显示映射文件而不是伴随它的 Java 对象。在映射文件中,该多对一元素与其他属性一起列出。它不包含在列表或集合元素中。在其他地方,它确实显示了使用 Collection 的 Java 对象(在示例中实现为 HashTable 的 Set),它有一个如下所示的映射文件:
<set name="events" table="PERSON_EVENT">
<key column="PERSON_ID"/>
<many-to-many column="EVENT_ID" class="Event"/>
</set>
这也是我在许多 StackOverflow 问题中看到的。那么实现这一点的正确方法是什么?