hibernate高階 多對多對映

2021-07-09 11:58:57 字數 924 閱讀 7904

前面學習了一對多對映,對hibernate的配置有一定大了解,在實際開發中還有一種對映關係就是多對多對映,比如乙個公司中開發人員和專案之間就是多對多的關係,乙個開發人員可以同時參與幾個專案,當然乙個專案可以有多個人員參與。

首先就是在資料庫中建立三張表,除了本來的雇員表和專案表外,另外一張表來儲存兩者之間的關係,以此來實現多對多對映關係。

具體建表**:

create table employee(

eid int,

ename varchar(20) not null

);create table project(

pid int,

pname varchar(20) not null

);create table rproemp(

eid int,

pid int

);alter table rproemp add constraint fk_project_pid foreign key(pid) references project(pid);

alter table rproemp add constraint fk_employee_eid foreign key(eid) references employee(eid);

當然在實體類裡互相之間要儲存引用集合,就是在專案類中持有雇員資訊集合,而且在雇員類中也要有持有所參加專案的集合。如下
public class project
public class employee

關於對映檔案hbm.xml檔案的配置:主要需要注意的就是在兩個檔案中set標籤的配置中注意關聯的資料表名應該是rproemp表,不再是實體類表,當然一樣可以通過inverse和cascade屬性來配置關係維護類和級聯屬性等。具體**如下:

Hibernate多對多查詢

乙個老師教許多學生,乙個學生被許多老師教,乙個學生有好多書,同一種書被許多同學擁有.要查詢教擁有書 a 的學生的老師 hql如何寫呀?如何取值?classteacher classstudent classbook hql語句 select t from teacher t join t.stude...

hibernate的多對多

近日工作中遇到多對多,以前未曾用過hibernate,這次也算是摸著石頭過河。之前試驗了級聯的cascadetype.all,卻發現當刪除部門表的時候,中間表資料刪除了,結果將人員表相關聯的資料也全部刪除了。後來將級聯改為cascadetype.persist,cascadetype.merge,倒...

hibernate的多對多

1.herbernate一對多自關聯 樹形選單查詢可能出現的問題 當載入一級節點的時候沒問題 強制載入 載入二級載入時候,由於設定了強制載入,同樣可以載入出所有的二級節點。沒問題 載入 節點時,這是session關閉了,並且預設採用的是懶載入 許可權選單載入有兩種方式 1 一次性將資料庫表中的資料全...