2011-04-28 93 views
0

是否可以仅在超类型上进行hibernate查询?超类型的hibernate查询返回子类型的结果,如何仅返回超类型的结果?

我叫做Conversation的超类型有它自己的hbm。 对话是Idea的超类型&问题也有自己的hbm。

如果我对超类型对话进行计数查询,它也会返回主意&问题的计数。 我该如何避免这种情况?

例子:

  • 3想法
  • 4个问题
  • 1交谈

如果我就想法查询计数将返回3 如果我将查询计算在它将返回的问题上4 如果我马上柯在谈话中的查询次数,它会返回3 + 4 + 1 = 8

我希望查询只返回我1(仅通话)

+0

如果您在查询超类型,你会得到'超类型'的结果。如果你想只从一个特定的子类型的结果,该子类型的查询 – 2011-04-28 10:23:55

+0

不,它也会返回我的子类型的结果,如果我对超类型 – 2011-04-28 10:36:13

+0

当然它会,也许你可以解释你的问题多一点 – 2011-04-28 10:37:39

回答

1

如何select count(c.id) from Conversation c where c.id not in (select i.id from Ideas i) or c.id not in (select q.id from Questions q)

+0

嗯,我想避免普通的SQL和只使用标准查询 – 2011-04-28 12:59:22

+0

我没有使用标准查询,所以我不能说明查询,但我认为上述查询可以转换为标准查询。查询在HQL中 – 2011-04-28 16:15:20