select count(*) from (select t.* , count(tt.table1_id) count
from table1 t left join table2 tt on t.id=tt.table1_id group by t.id) b;换成hibernate 的 hql

解决方案 »

  1.   

    table1  table2 换成对应的类名就好了
      

  2.   

    你想要查询什么?怎么感觉整个语句表述的意思就是查询table1的记录个数
      

  3.   

    主要是想实现左连接吧,hibernate没有做连接的on关键字,要用对象方式由他自己实现,比如left join a.id = a.b.id 的形式,不知道说明白没有
      

  4.   

    楼主要查找table1中与table2对应的纪录的个数,是吗?如果table1和table2做了外键映射,用select count table2 from table1 就可以了,注意table1是类名。table2 是table1 的属性名。上面语句不是按你的意愿实现的,但结果是一样的。楼主要学习一下hibernate。
      

  5.   

    主要是想实现左连接吧,hibernate没有做连接的on关键字,要用对象方式由他自己实现,比如 left join a.id = a.b.id 的形式,不知道说明白没有
      

  6.   

    要实现左连接的话,直接用select t from table1 t left join t.table2 tt,就行了,table1 ,table2是类名,两个pojo类应该有关联关系的
      

  7.   

    HIBERNATE版本?早期版本不支持SQL嵌套吧
      

  8.   

    主要是想实现左连接吧,hibernate没有做连接的on关键字,要用对象方式由他自己实现,比如 left join a.id = a.b.id 的形式,不知道说明白没有
      

  9.   

    在hql语句里,操作的是实体对象,以及该对象里的属性。楼主要搞明白就好写了。