天天看點

hibernate多表關聯查詢

Hibernate關聯查詢有多種實作方式 

方式一:建立視圖

像查詢表一樣查詢視圖,給視圖建立持久化類。

方式二:建立POJO之間的互相引用

在*.hbm或Annotation中配置"subclass"屬性,對應三種類型的關聯方式one-to-one/many-to-one/one-to-many.

需要謹慎的使用Lazy和fetch關鍵字,避免不必要的查詢,或者已經關閉Session後再查詢。 

方式三:直接查詢,将結果儲存在臨時對象中 

比如有存在關聯的表A和表B字段分别如下

A:id,aName,aDesc

B:id,aId,bName,bDesc

希望查詢的結果是:A.id,B.id,A.aName,B.bName,B.bDesc

按照如下步驟操作:

1.建立A和B的hibernate映射,互相不用關聯,對應持久化類為APojo和BPojo

2.建立結果集的載體CPojo,CPojo隻是簡單的一個JavaBean不是持久化類,它的屬性與查詢結果相對應:

1. public class
2. public long
3. public long
4. public
5. public
6. public
7. 
8. public CPojo(long aId, long
9. this.aId = aId;
10. this.bId = bId;
11. this.aName = aName;
12. this.bName = bName;
13. this.bDesc = bDesc;
14. }
15. }      

3.HQL寫法:

  1. Select new

繼續閱讀