java hibernate:在多态hql查询中选择discriminator列

在hibernate中,我想选择鉴别器值。 就像是

select discriminator, id, name, age from Animal

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

那可能吗? 怎么样?

你可以这样做:

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

来自Hibernate文档 :

在多态持久性的情况下,特殊属性类访问实例的鉴别器值。

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