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