又抓狂了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推荐