hibernate之多對一關聯映射

many-to-one  多對一關聯映射 

 

Student - Class 多個學生屬於一個班

public class Class {

private String  id

private String name

........

}

 

 

public class Student{

private String  id

private String name

........

private Class class

.........

}

 

 

 

 

Student.hbm.xml(學生映射文件) 如下:

........

<id name="id">

        <generator class="native" />

</id>

 

<property name="name" />

 

<money-to-one name="class" column="classid" />

.........

 

    在多的一端加一個字段 class,用 column 重命名爲classidclassid 作爲外鍵指向Class端。

 

    需要注意的是:save 時,先session.save(class),不然會報錯(saveStudent)時會查找classid的值,沒有分配classclassid值不存在,就會報TransientObjectException),所以要先分配了Class 

 

如果想偷懶的話,只要添加一個cascade屬性,如下

<money-to-one name="class" column="classid" cascade="all"/>就可以自動save class,不會拋異常

cascade可以取得值:all  none  sava-update  delete

all代表在所有情況下都執行級聯操作

none在所有情況下都不執行級聯操作

sava-update保存和更新的時候執行級聯操作

delete刪除的時候執行級聯操作

(級聯:對象的連鎖操作)

 

個人還是喜歡手動save ,清晰直觀

加載(load)的時候,從student加載class,OK,沒有問題

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章