Hibernate关联查询有多种实现方式
1个回答
展开全部
hibernate的关联查询实现方法,比如有存在关联的表A和表B字段分别如下:
A:id,aName,aDescB:id,aId,bName,bDesc希望查询的结果是:A.id,B.id,A.aName,B.bName,B.bDesc1.按照如下步骤操作:①创建A和B的hibernate映射,相互不用关联,对应持久化类为APojo和BPojo②创建结果集的载体CPojo,CPojo只是简单的一个JavaBean不是持久化类,它的属性与查询结果相对应:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
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关联查询语句写法:
1
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
优点:不需要建立复杂的持久化类,也不需要建立视图。结果集可以自由定制。
A:id,aName,aDescB:id,aId,bName,bDesc希望查询的结果是:A.id,B.id,A.aName,B.bName,B.bDesc1.按照如下步骤操作:①创建A和B的hibernate映射,相互不用关联,对应持久化类为APojo和BPojo②创建结果集的载体CPojo,CPojo只是简单的一个JavaBean不是持久化类,它的属性与查询结果相对应:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
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关联查询语句写法:
1
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
优点:不需要建立复杂的持久化类,也不需要建立视图。结果集可以自由定制。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询