java 休眠:在多态 hql 查询中选择鉴别器列

2022-09-02 12:40:14

在休眠状态下,我想选择鉴别器值。类似的东西

select discriminator, id, name, age from Animal

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

这可能吗?如何?


答案 1

您可以按如下方式进行操作:

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

来自 Hibernate 文档

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


答案 2

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


推荐