hibernate查询关联
- 作者: 我就想取个名字
- 来源: 51数据库
- 2020-09-23
hibernate的关联查询实现方法,比如有存在关联的表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
②创建结果集的载体CPojo,CPojo只是简单的一个JavaBean不是持久化类,它的属性与查询结果相对应:
public class CPojo {
public long aId;
public long bId;
public String aName;
public String bName;
public String bDesc;
public CPojo(long aId, long bId, String aName, String bName, String bDesc) {
this.aId = aId;
this.bId = bId;
this.aName = aName;
this.bName = bName;
this.bDesc = bDesc;
}
}2.HQL关联查询语句写法:
Select new com.XXX.CPojo(a.id,b.id,a.aName,b.bName,b.bDesc) from A a,B b where a.id = b.aId优点:不需要建立复杂的持久化类,也不需要建立视图。结果集可以自由定制。