Hibernate多表查询结果处理

开发 后端
如果我们在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 ]; } 
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.

这是获取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 ");  
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.

当然我们需要有一个NewMembers类和相应的构造方式。以上便是两种用于获取Hibernate多表查询的结果的方法以及其相应的代码。

【编辑推荐】

  1. Hibernate一对多关系的处理
  2. Hibernate的性能优化
  3. 强人Hibernate文档笔记(上)
  4. 强人Hibernate文档笔记(中)
  5. 强人Hibernate文档笔记(下)
责任编辑:仲衡 来源: 新浪博客
相关推荐

2009-09-22 15:26:30

Hibernate多表

2009-09-25 10:22:35

Hibernate多表

2010-10-28 16:42:04

oracle多表查询

2010-11-22 15:56:34

Mysql多表查询

2010-10-14 14:28:03

Mysql多表查询

2009-09-17 18:05:15

linq to sql

2009-09-29 16:29:40

Hibernate查询

2009-09-27 10:19:11

Hibernate命名

2009-06-18 09:47:50

2009-09-24 09:25:10

Hibernate批量

2009-06-18 09:14:08

Hibernate H

2009-06-17 08:47:00

Hibernate优化

2009-06-26 10:01:00

Hibernate的查

2009-09-24 15:27:41

Hibernate查询

2009-09-22 08:39:59

Hibernate F

2010-11-23 11:44:10

MySQL多表联合查询

2009-09-27 10:10:47

Hibernate处理

2009-09-24 10:35:10

Hibernate查询

2009-06-30 16:44:10

Criteria基本查

2009-06-11 14:40:59

Hibernate分页Hibernate查询
点赞
收藏

51CTO技术栈公众号