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寫法:
- Select new