2011-04-07 47 views
16

在hibernate中,我想选择鉴别器值。像java hibernate:选择多态hql查询中的鉴别器列

select discriminator, id, name, age from Animal

的想法的东西是结果发送此查询到客户端,这样我就可以根据鉴别列的值显示不同的图标(即猫,狗,大象,等等)。

这可能吗?怎么样?

回答

27

如下你可以这样做:

select a.class, a.id, a.name, a.age from Animal a 

Hibernate Documentation

特殊属性类存取一个实例的多态持久的情况下,鉴价值。

+2

太棒了!起初它不起作用,因为我没有通过'a.'的资格并写下'select class ...' – flybywire 2011-04-07 16:29:46

1

Hibernate查询对象,不知道列。所以除非你在Animal对象中有一个名为discriminator的属性,否则你不能这么做。您可以在sql中执行查询或获取整个对象,然后获取继承类型,因为您可以使用“instanceof”