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...