我在學習如何使用Hibernate來實現Java對象持久性。具體來說,我試圖找出如何實現單向一對多映射。我已經閱讀了關於這個主題的hibernate文檔和大量的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對象。在映射文件中,該多對一元素與其他屬性一起列出。它不包含在列表或設置元素中。在其他地方它確實表明,使用集合(如示例哈希表實現的集)的Java對象有一個映射文件看起來像這樣:
<set name="events" table="PERSON_EVENT">
<key column="PERSON_ID"/>
<many-to-many column="EVENT_ID" class="Event"/>
</set>
這也是我在許多見過StackOverflow問題。那麼實現這個的正確方法是什麼?
是的,我並不需要明確的列表索引列。假設一套會更好。我已經多次閱讀該文檔。它並不是很清楚,因爲它通常只顯示映射文件 - 沒有顯示相應的java對象。很難弄清楚什麼映射文件應該轉到java模式。那麼,正確映射的集合看起來像這裏? ?是否有任何需要進入StudentGrades映射文件(除了它的屬性)? –
2010-02-12 15:57:35
就是這樣。正如你所說,'StudentGrades'映射需要一無所知,只是屬性。 – skaffman 2010-02-12 16:02:49