實際專案開發中,多對多關係也是非常常見的關係,比如,乙個購物系統中,乙個使用者可以有多個訂單,這是一對多的關係:乙個訂單中可以購買多種商品,一種商品也可以屬於多個不冋的訂單,訂單和商品就是多對多的關係。對於資料庫中多對多關係建議使用乙個中間衰來俊護關係,中間表中的訂單id作為外來鍵參照訂單表的id,商品id作為外健件照商品表的id。
下面我們就用乙個簡單示例來看看mybatis怎麼處理多對多關係.
建立使用者表tb_user
建立商品表tb_article
建立訂單表tb_order
建立中間表tb_item
tb_order表的user_jd作為外來鍵參照tb_user表的主越id. tb_item表作為中間表,用來維護tb_article和命_order的多對多關係,tb_item表的order_id作為外來鍵參照tb_order表的主健id. aitide.id作為外來鍵參照tb_article表的主鍵id。
接下來,建立乙個user物件、乙個article物件和乙個order物件分別對映tb_user,tb_article和 tb_order 表。
訂單和使用者是多對一的關係,乙個訂単只屬於乙個使用者,在order類中定義了乙個user屬性,用來對映多對一的關聯關係,表示該訂單的使用者,訂単和商品是多對多的關係,即乙個訂單中可以包含多種商品,在order類中定義了乙個articles屬性,該屬性是乙個list集合,用來對映多對多的關聯關係,表示乙個訂単中包含多種商品。
建立article實體
商品和訂單是多對多的關係,即一種商品可以出現在多個訂單中。在article類中定義了乙個orders 屬性,該屬性是乙個list集合,用來對映多對多的關聯關係,表示該商品關聯的多個訂單。
結果對映xml
訂單order結果對映xml
Nhibernate多對多對映
一般來說多對多對映,對映表不需要設定為實體類,但如果特殊需求,如需要新增欄位isactived等,這個時候就需要將對映表設定為實體,同時該實體需要針對兩邊的類做many to one對映,而兩邊的類需要做來實現雙向關聯,如下例 需求 系統需要對私人 accountinfo 傳送短訊息 message...
mybatis 多對多查詢
查詢使用者及使用者購買商品資訊。查詢主表是 使用者表 user 關聯表 由於使用者和商品沒有直接關聯,通過訂單和訂單明細進行關聯,所以關聯表是 orders orderdetail items select orders.order表的唯一標識 user表的唯一標識 user.username,us...
mybatis關係對映之一對多和多對一
一.簡介 本例項使用顧客和訂單的例子做說明 乙個顧客可以有多個訂單,乙個訂單只對應乙個顧客 二.例子 1.結構圖 2.建表語句 create database test use test create table person personid varchar 36 primary key,pers...