Hibernate對映關係(雙向)

2021-09-08 03:16:22 字數 4102 閱讀 8086

hibernate雙向關係共3種(1對n(n對1)、1對1、多對多 )。

例如 客戶訂單關係。乙個客戶有多個訂單,乙個訂單屬於乙個客戶。

開發步驟:

customer 類加上set訂單集合。

order類新增customer屬性。、

customer.hbm.xml配置檔案one-to-many

order.hbm.xml配置檔案many-to-one

public class customer {

private integer id;

private string name;

private string gender;

private setorders = new hashset();

public class order {

private integer id;

private string orderno;

private string productname;

//關聯客戶

private customer customer;

customer.hbm.xml

order.hbm.xml

5.檢視資料庫表結構

create table `tb_customer` (

`id` int(11) not null auto_increment,

`name` varchar(255) collate utf8mb4_bin default null,

`gender` varchar(255) collate utf8mb4_bin default null,

primary key (`id`)

) engine=myisam auto_increment=2 default charset=utf8mb4 collate=utf8mb4_bin

create table `tb_order` (

`id` int(11) not null auto_increment,

`orderno` varchar(255) collate utf8mb4_bin default null,

`productname` varchar(255) collate utf8mb4_bin default null,

`cust_id` int(11) default null,

primary key (`id`),

key `fkg4q8dm6sldh5**b4lhgr886wm` (`cust_id`)

) engine=myisam auto_increment=3 default charset=utf8mb4 collate=utf8mb4_bin

例如:person(人)-card(身份證)

開發步驟:

person 類新增card屬性

card類新增person屬性

person.hbm.xml新增one-to-one

card.hbm.xml新增many-to-one

public class person {

private integer id;

private string name;

private card card;

public class card {

private integer id;

private string name;

private person person;

person.hbm.xml

card.hbm.xml

5.檢視資料庫表結構

create table `tbu_person` (

`id` int(11) not null auto_increment,

`name` varchar(255) collate utf8mb4_bin default null,

primary key (`id`)

) engine=myisam auto_increment=2 default charset=utf8mb4 collate=utf8mb4_bin

create table `tbu_card` (

`id` int(11) not null auto_increment,

`name` varchar(255) collate utf8mb4_bin default null,

`person_id` int(11) default null,

primary key (`id`),

unique key `uk_skdmp9enx60ckwelehwfd7lx9` (`person_id`)

) engine=myisam auto_increment=2 default charset=utf8mb4 collate=utf8mb4_bin

例如 user和role關係。乙個使用者有多個角色,乙個角色屬於多個使用者。

需要額外建立一張中間表。中間表儲存2張表的主鍵對應關係。

開發步驟:

user類中新增set role的集合屬性

role類中新增set user的集合屬性

user.hbm.xml設定many-to-many

role.hbm.xml設定many-to-many

public class user {

private integer id;

private string name;

//關聯角色

private setroles = new hashset();

public class role {

private integer id;

private string name;

//關聯使用者

private setusers = new hashset();

user.hbm.xml

role.hbm.xml

create table `tbu_user` (

`id` int(11) not null auto_increment,

`name` varchar(255) collate utf8mb4_bin default null,

primary key (`id`)

) engine=myisam auto_increment=3 default charset=utf8mb4 collate=utf8mb4_bin

create table `tbu_role` (

`id` int(11) not null auto_increment,

`name` varchar(255) collate utf8mb4_bin default null,

primary key (`id`)

) engine=myisam auto_increment=3 default charset=utf8mb4 collate=utf8mb4_bin

create table `t_user_role` (

`userid` int(11) not null,

`roleid` int(11) not null,

primary key (`userid`,`roleid`),

key `fkpivvyoiimrnf0hsfb110n1j2t` (`roleid`)

) engine=myisam default charset=utf8mb4 collate=utf8mb4_bin

hibernate 關係對映

color red hibernate 多對一對映 color 關聯對映的本質 將關聯關係對映到資料庫,關聯關係在物件模型域中體現為乙個或多個引用 標籤會在 多 的一端新增乙個外來鍵,指向 一 的一端,這個外來鍵是由 中的column的屬性定義的,如果忽略這個屬性,預設建立的外來鍵與實體類的屬性名相...

Hibernate 對映關係

對映關係通俗點來說 address實體類 不用配置 user實體類 編寫配置 public class user student實體類 不用配置 班級實體類 編寫配置 public class clazz.student實體類 不用配置 課程實體類 編寫配置 public class course....

Hibernate關係對映

二 關係對映 1.關聯對映 2.繼承對映 3.復合主鍵對映 復合 聯合 主鍵對映 通常做法是將主鍵相關字段放到乙個單獨的類中,這樣類是有要求的 必須實現序列化介面 覆蓋equals和hashcode方法 主鍵,建議使用沒有業務語義的,減少業務變更時的修改 4.元件對映 component對映 在hi...