1. 程式人生 > >Hibernate的多表關系

Hibernate的多表關系

key cascade 優化 tro 默認值 語句 映射 反轉 重復

多表關系

一對多/多對一
  O 對象         一的一方使用集合. 多的一方直接引用一的一方.
  R 關系型數據庫   多的一方使用外鍵引用一的一方主鍵.

  M 映射文件:

一: <set name="">
		<key column="" />
		<one-to-many class="" />
    </set>
多: <many-to-one name="" column="" class="" />

  

  操作: 操作管理級別屬性.

cascade: 級聯操作

//減少我們書寫的操作代碼.

none(默認值)   不級聯

save-update:   級聯保存

delete:級聯刪除

all:   級聯保存+級聯刪除

結論: 可以使用save-update.不推薦使用delete. 也可以不用cascade.

inverse: 反轉關系維護

屬於性能優化.關系的兩端如果都書寫了關系.那麽兩方都會發送維護關系的語句.

這樣,語句就發生重復.我們可以使用inverse使一的一方放棄維護關系.

true放棄

false(默認值)維護

結論: 在一對多中,一的一方可以放棄維護關系.

多對多

  O 對象兩方都使用集合.

R 關系型數據庫使用中間表.至少兩列.作為外鍵引用兩張表的主鍵.

  M 映射文件:

多: <set name="" table="中間表名" >
		<key column="別人引用我" />
		<man-to-many class="" column="我引用別人的" />
    </set>

  操作:操作管理級別屬性.

cascade: 級聯操作

減少我們書寫的操作代碼.

none(默認值)   不級聯

save-update:  級聯保存

delete:級聯刪除

all:級聯保存+級聯刪除

結論: 可以使用save-update.不推薦使用delete. 也可以不用cascade.

inverse: 反轉關系維護

//屬於性能優化.必須選擇一方放棄維護主鍵關系.哪方放棄要看業務方向.

Hibernate的多表關系