关于超类型的hibernate查询返回子类型的结果,如何只返回超类型的结果?

时间:2011-04-28 10:05:38

标签: java hibernate polymorphism criteria

是否可以仅对超类型进行hibernate查询?

我称为Conversation的超级类型有自己的hbm。 会话是Idea& amp;的超类型。问题也有自己的hbm。

如果我对我的超类型对话进行计数查询,它还会返回Idea&题。 我怎么能避免这种情况?

示例:

我有

  • 3个想法
  • 4个问题
  • 1次对话

如果我根据想法进行查询,它将返回3 如果我对问题进行查询,它将返回4 如果我在Conversation上查询,它将返回3 + 4 + 1 = 8

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

1 个答案:

答案 0 :(得分: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)

怎么样?