建立多對一關係

2021-09-01 15:59:23 字數 1030 閱讀 6779

在資料庫設計中,很多實體之前並不是簡單的一對一關係。有些可能是多對一,多對多關係。下面的文章中以常見的客戶訂單之間的關係為例,介紹在hibernate中,如果去配置多對一的關係。

1. 實體分析

客戶和訂單之間是一對多的關係,或者說訂單和客戶之間是多對一的關係。按照上面的思想,可以設計出兩種方式的類關係。

//方式一

public class customer

public class order

//方式二

public class customer

public class order

方式一方式二這樣設計都是可以的,但是想想資料庫sql語句怎麼寫呢?

create table order(

id int not null;

custom_id int not null;

primary key (id);

);create table customer(

id int not null;

name varchar(30) ;

primary key (id);

);

可以看到方式二這種建立類的方法,更接近資料庫表的結構。

2. hibernate的配置

//對於客戶實體是很簡單,類就只有id和name屬性,表也只有id和name欄位,直接

//簡單的對映一下就行。

//而對於訂單而言,類和資料庫表中的id欄位是可以做簡單的對應的。但是customer_id

//這個欄位就不好對應了。因為在類中是customer物件,而在資料庫表中是int型的外來鍵

//對於上面的情況,使用many-to-one元素來做對映。

hibernate多對一關係對映

多對一雙向關聯 多對一與一對多 假設使用者user和idcard多對多關聯 user中存在屬性set屬性儲存多個idcard,idcard中存在user屬性 user對映檔案 idcard table指定集合表名,此處已告訴引用型別,故可省略 集合外來鍵,引用對方表中,對應我方表主鍵 也可為其他屬性...

Hibernate一對多和多對一關係詳解

雙向一對多關係,一是關係維護端 owner side 多是關係被維護端 inverse side 在關係被維護端需要通過 joincolumn建立外來鍵列指向關係維護端的主鍵列。public classorderimplementsserializable public classorderitem...

Hibernate中一對多和多對一關係

1 單向多對一和雙向多對一的區別?只需要從一方獲取另一方的資料時 就使用單向關聯 雙方都需要獲取對方資料時 就使用雙向關係 部門 人員 使用人員時 如果只需要獲取對應部門資訊 user.getdeptarment 不需要 從部門下的人員資訊時,就配置成單向 多對一 使用部門時 如果只需要獲取部門下人...