Я пытаюсь узнать, как использовать 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, сопровождающий его. В файле отображения этот элемент многие-к-одному указан вместе с другими свойствами. Он не содержится в списке или элементе set. В другом месте, где он показывает Java-объект, который использует Collection (набор, реализованный как HashTable в примере), он имеет файл отображения, который выглядит следующим образом:
<set name="events" table="PERSON_EVENT">
<key column="PERSON_ID"/>
<many-to-many column="EVENT_ID" class="Event"/>
</set>
Это также то, что я видел во многих вопросах StackOverflow. Итак, как правильно реализовать это?