1. 程式人生 > >hibernate一對多、多對多級聯儲存與級聯刪除與修改外來鍵

hibernate一對多、多對多級聯儲存與級聯刪除與修改外來鍵

1、一對多複雜寫法級聯儲存

//建立一個公司物件,為公司物件新增員工

        GongsiEntity gongsi=new GongsiEntity();
        gongsi.setGname("百度");
        YuangongEntity yuangong=new YuangongEntity();
        yuangong.setYname("001");
        //建立公司與員工的關係
        //1、把員工放進公司的set集合裡面
        gongsi.getYuangongSet().add(yuangong);
        //2、把公司放到員工裡面
        yuangong.setGongsiEntity(gongsi);
        //儲存到資料庫
        session.save(gongsi);

        session.save(yuangong);

2、一對多簡單寫法級聯儲存(常用)

(1)在公司對映檔案中進行配置 在set標籤中新增屬性cascade,屬性值為save-update (2)建立公司和員工物件,只需要把員工放到公司裡面就可以了,最終只需要儲存公司就可以了

3、一對多級聯刪除

(1)刪除某個公司物件,把裡面的員工也刪除 (2)具體實現 1、在公司對映檔案set標籤的cascade的屬性值新增delete 2、在程式碼中直接刪除 GongsiEntity gongsi=(GongsiEntity)session.get(GongsiEntity.class,1);
        session.delete(gongsi);

4、一對多修改外來鍵

(1)需要獲取員工物件和公司物件,重新設定關係

//根據id查詢
        YuangongEntity yuangong=(YuangongEntity)session.get(YuangongEntity.class,3);
        GongsiEntity guge=(GongsiEntity)session.get(GongsiEntity.class,2);
        //把員工放到其他公司
        guge.getYuangongSet().add(yuangong);
        yuangong.setGongsiEntity(guge);

5、多對多級聯儲存

根據訂單儲存商品 1、在訂單配置檔案中set標籤進行配置cascade值save_update 2、程式碼實現 建立訂單和商品物件,把商品放到訂單中,儲存訂單即可

6、多對多級聯刪除(瞭解,不常用)

與上面類似,需要在set標籤配置cascade屬性值為delete, 然後直接程式碼查詢刪除

7、多對多維護第三張表(關係表)

訂單和商品多對多關係,維護關係通過第三張表 1、讓某個訂單有某個商品 (1)根據id查詢出訂單和商品 (2)把商品放到訂單的set集合裡面 2、讓某個訂單沒有某個商品 (1)根據id查詢出訂單和商品 (2)把商品從訂單的set集合中移除