1. 程式人生 > >多對多的級聯關係

多對多的級聯關係

  1. 資料庫的多對多
    1.1 資料庫中不能直接對映多對多
    處理:建立一個橋接表(中間表),將一個多對多關係轉換成兩個一對多

    注1:資料庫多表聯接查詢
    永遠就是二個表的聯接查詢

        A   B   C  D
           t1   C
                t2 D
                   t3
    

    注2:交叉連線
    注3:外連線:left(左)/right(右)/full(左右)
    主從表:連線條件不成立時,主表記錄永遠保留,與null匹配

        A	B	AB
        select * from A,B,AB WHERE A.aID=AB.aID and b.bid = AB.bid
        where 
        在hibernate中,你只管查詢當前表物件即可,
        hibernate會欄位關聯橋表以及關聯表查詢出關聯物件
    
  2. hibernate的多對多
    2.1 hibernate可以直接對映多對多關聯關係(看作兩個一對多)

  3. 多對多關係注意事項
    3.1 一定要定義一個主控方
    3.2 多對多刪除
    3.2.1 主控方直接刪除
    3.2.2 被控方先通過主控方解除多對多關係,再刪除被控方
    3.2.3 禁用級聯刪除
    3.3 關聯關係編輯,不需要直接操作橋接表,hibernate的主控方會自動維護

案例:
自關聯查詢 選單表
多對多級聯查詢 書籍表、書籍類別表