1. 程式人生 > >Hibernate 的list 多對多的配置檔案

Hibernate 的list 多對多的配置檔案

     HIbernate 的多對多配置,很少用,但是,也不是不用,場景會逼著你使用。當然,我們都習慣了使用Set來進行多對多的關聯。

    為什麼使用set進行多對多的關聯,因為方便,簡單。大道至簡。沒有人喜歡麻煩。

    我們都知道 Set 集合是去重複的,無序的。簡單的就是魚缸裡邊的魚,你隨便跑,別出魚缸就行了。而List呢,是可重複的,有序的,就像你把魚缸裡的與訓練排隊。他們要知道精確的座標。哪怕他們兩個長的一樣。也是可以存在的。所以,就造成了list集合的配置比Set集合的配置多個欄位,也多相同資料。沒有實際必要,最好不要新增重複資料。

    那麼,現在來記什麼?當然記錄他們的配置關係了。Hibernate 我感覺,只要配置好資料關係,就完成了一半了。恰恰,這次,場景真的適合用list來配置多對多的關係連線。不多說了,直接記錄問題吧。

    配置多對多總少不了一個配置,誰去維護關係?當然是inverse 屬性了。這個還有點拗口,它表示,相對的去維護。預設為false,自己維護。值為true時,關聯的物件維護。好吧。

    這個關聯,主要問題是主鍵的問題。

1).當inverse不設定的時候,預設的是配置的一方的外來鍵與idx(也就是list的排序列)作為聯合主鍵。

2).當inverse=false 的時候,因為我配置的是單項的關聯關係,聯合主鍵同上。

3).當inverse="true"的時候,不設定預設主鍵,所以隨便寫。這三種情況都可以新增資料。不影響。

所以,我感覺在這個裡邊,inverse設定不設定的不重要。只是,中間表的兩個外來鍵,怎麼生成的主鍵,不清楚是怎麼配置的了。這是個問題。

先記錄到這兒吧。還有工作要做。