郁悶了好久的Hibernate的many-to-many雙向關(guān)聯(lián)搞定了
在做hbiernate的many-to-many的雙向關(guān)聯(lián)時,一方要設(shè)置inverse="true",另一方要設(shè)置inverse="false"。inverse="false"的一方保存時,維護多對多之間的關(guān)系,且只要將相互的關(guān)系告訴這一方即可。
如果inverse都設(shè)置為true,雙方的關(guān)系將都不到維護。
如果都設(shè)置為false,雙方將共同維護之間的關(guān)系,這時,要將雙方的包含關(guān)系都要設(shè)置清楚,否則將會導(dǎo)致關(guān)系維護混亂。
如果設(shè)置了casade="save-update",只能設(shè)置一方,如果雙方都設(shè)置的話,當(dāng)更新一方的時候,同時會更新另一方,另一方的更新又會導(dǎo)致一方的更新。
lazy loading指的是當(dāng)實際要使用到某個數(shù)據(jù)字段時候,才將其從數(shù)據(jù)庫中去出,避免內(nèi)存的浪費。
inverse . inverse默認是false .當(dāng)你指定inverse="true" cascade="none" 時,這個實體對這個屬性是沒有持久更新的權(quán)利的,它把這個屬性的管理權(quán)利完全交給了關(guān)聯(lián)的另一方了。