Hibernate条件查询在多个级别的实体继承中

时间:2014-12-11 13:45:44

标签: java sql hibernate java-ee jboss

如果您以single_table方式具有多个级别的继承,例如类

class LivingCreatures {}, 

class Animals extends LivingCreatures {}, 

class Dog extends Animals {}, 

class Cat extends Animals {}

我注意到数据库层中只有一个鉴别器列。

有没有办法向所有动物询问LivingCreatures?

session().createCriteria(LivingCreatures.class).add(   
     Restrictions.eq("class", Animals.class)
)

1 个答案:

答案 0 :(得分:1)

我认为这应该有用

session.createCriteria(LivingCreatures.class, "creatures").add(Restrictions.eq("creatures.class", Animals.class));

这只会返回LivingCreaturesdtype的{​​{1}},并且不会返回AnimalsDog。如果您希望所有Cat包括子类型,Animals)都可以使用。