如何处理Hibernate多表查询的结果实例讲解,Hibernate多表查询结果处理,在Hibernate中需要查询多个表的不同字段,如何获取Hibernate多表查询的结果呢?有两种方法: 方法一对各个字段分别转化成对应类型;方法二构造自己的复合类型。
方法1、 把各字段分别转化成对应类型,实例如下:
Java代码实例:
- Query
q = session.createQuery(“ select members, classInfo.className “ + -
“ from Members members, ClassInfo classInfo “ + -
“ where members.level = classInfo.classCode “); - List
result = q.list(); - Iterator
it = result.iterator(); - while
(it.hasNext()) { -
Object[] tuple = (Object[]) it.next(); -
Members members = (Members) tuple[ 0 ]; -
String className = (String) tuple[ 1 ]; - }
- Query
q = session.createQuery - (“
select members, classInfo.className “ + - “
from Members members, ClassInfo classInfo “ + - “
where members.level = classInfo.classCode “); -
List result = q.list(); Iterator it = result.iterator(); -
while (it.hasNext()) { Object[] tuple = (Object[]) it.next(); - Members
members = (Members) tuple[ 0 ]; - String
className = (String) tuple[ 1 ]; }
此为获取Hibernate多表查询的结果的最常用的方法。
方法2、构造自己的复合类型,实例源码下:
Java代码:
- Query
q = session.createQuery - (“
select new NewMembers(members, classInfo.className) “ + -
“ from Members members, ClassInfo classInfo “ + -
“ where members.level = classInfo.classCode “); - Query
q = session.createQuery - (“
select new NewMembers(members, classInfo.className) -
“ + “ from Members members, ClassInfo classInfo “ + “ - where
members.level = classInfo.classCode “);
需要有一个NewMembers类以及相应的构造方式。以上便是获取Hibernate多表查询的结果的方法以和其相应的代码。