hibernate的多對多

2021-08-30 06:25:01 字數 1068 閱讀 2883

1.herbernate一對多自關聯

樹形選單查詢可能出現的問題

當載入一級節點的時候沒問題(強制載入);

載入二級載入時候,由於設定了強制載入,同樣可以載入出所有的二級節點。沒問題;

載入**節點時,這是session關閉了,並且預設採用的是懶載入

* 許可權選單載入有兩種方式

* (1)、一次性將資料庫表中的資料全部載入往瀏覽器返回(適用於選單較少)

* (2)、選單表資料量較大,當出現瀏覽器卡頓的情況,第一種情況就不適用了

* 那麼就採用選單逐級載入。

``

2.多對多級聯查詢 書籍表、書籍類別表:

①:以前我們要查詢多個表的關係需要用到多表聯查:

select * from book b,book_category bc, category where b.bid=bc.bid and bc.bic=c.cid and bid = 2

②:在hibernate中,你只管查詢當前表物件即可, hibernate會自動關聯橋表以及關聯表查詢出關聯物件

配置檔案:

1.book.hbm.xml

2.category.hbm.xml

sql的形成過程分析:

首先根據 session.get(book.class,5) 這個方法 得到

sql=select * from t_hibernate_book where bookid=?(5)

得到結果集 resultset—>拿到book類的例項

book book= class.forname(「com.zking,five.entity.book」);//沒值的

因為配置檔案中封裝了一些book屬性,所以我們可以拿到乙個filed(配置檔案)屬性 ------------>根據xml建模等操作

然後將book類的屬性乙個個賦值進去

book.setbookid(5);

book.setbookname(a);

book.setprice(10)

這些都是通過反射去做的

hibernate的多對多

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

hibernate的多對多

多對多關聯是hibernate中一種比較特殊的關聯,它需要借助中間表來完成多對多資訊的儲存。多對多關聯只有雙向關聯。資料庫的多對多 資料庫中不能直接對映多對多 處理 建立乙個橋接表 中間表 將乙個多對多關係轉換成兩個一對多。hibernate的多對多 hibernate可以直接對映多對多關聯關係 看...

Hibernate多對多查詢

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