多表中的休眠计数

时间:2013-08-14 11:49:45

标签: hibernate count

我想编写一个HQL查询,该查询返回不同列中4个表的特定计数。

我有4个表:Tab1Tab2Tab3Tab4,我希望得到这样的结果:

|Tab1   | Tab2  | Tab3  | Tab4   |
|..1....|..13...|...7...|....0...|

Tab#中的所有记录都有自己的idObjectID以及ObjectFetch

我尝试过这样的事情:

select DISTINCT
(select count(*) from Tab1 where ObjectFetch=:fetch and ObjectID=:id),
(select count(*) from Tab2 where ObjectFetch=:fetch and ObjectID=:id),
(select count(*) from Tab3 where ObjectFetch=:fetch and ObjectID=:id),
(select count(*) from Tab4 where ObjectFetch=:fetch and ObjectID=:id),
from Tab1, Tab2, Tab3, Tab4

但它根本不起作用,任何想法为什么?

1 个答案:

答案 0 :(得分:2)

我找到了一个解决方案,根本就没有必要在FROM之后使用所有表我们只能使用1,它只是为了正确的语法,我们也可以使用virtualTable,所以正确的HQL

select DISTINCT
(select count(*) from Tab1 where ObjectFetch=:fetch and ObjectID=:id),
(select count(*) from Tab2 where ObjectFetch=:fetch and ObjectID=:id),
(select count(*) from Tab3 where ObjectFetch=:fetch and ObjectID=:id),
(select count(*) from Tab4 where ObjectFetch=:fetch and ObjectID=:id)
from Tab1

,一切都好:) thx。