Hibernate多表查询

Posted on 2010-03-03 22:35  FreeSkyCD  阅读(369)  评论(0编辑  收藏  举报

又抓狂了N长时间才搞定,由于习惯了SQL语句超级简单的连接查询,导致了开始理解Hibernate多表查询的时候有点小麻烦,现在终于又深刻地理解了Hibernate中纪录即对象这个概念~~~

 

简单举例说明,有两个表:Table1(a,b)和Table2(b,c),那么如果要查询(a,b,c)这样的集合,方法有两种:第一种大概就是说联合查询返回的纪录是个object[],可以通过object[0],object[1]这种方式得到所要的值,这种方法我不太喜欢,也没有为什么,就是看着不太舒服,介绍一下第二种:

 

通常的SQL语句应该是:Select  a, t1.b, c  From Table1 t1, Table2 t2  Where t1.b = t2.b

 

但这样的方法直接是不能用到Hibernate中的,因为没有一个类同时有 a,b,c 三个属性,所以可以创建一个这样的类 NewClass,属性为table1和c,table1是Table1映射类的对象,对应的hql语句是

 

"Select new NewClass(t1, t2.c) " + "From Table1 t1, Table2 t2 " + "t1.b = t2.b"

 

这样就Ok了~~~



已有 0 人发表留言,猛击->>这里<<-参与讨论


JavaEye推荐



Copyright © 2024 FreeSkyCD
Powered by .NET 8.0 on Kubernetes