前面學習了一對多對映,對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 一次性將資料庫表中的資料全...