Hibernate JPA继承奇怪的行为

时间:2013-06-07 13:31:16

标签: inheritance jpa hibernate-entitymanager

我有两张桌子。员工和用户。

Employee使用继承进行注释(strategy = InheritanceType.JOINED) 用户注释@PrimaryKeyJoinColumn(name =“super_id”)

如果我使用用户实体,一切都很好。

当我想加载Employee实例时,hibernate使用SQL查询引发了“Column clazz not found”。作为一种解决方法,我尝试注入像“0 as clazz ”这样的假列,但是引发了重复列错误。无论如何,如果我使用HQL查询,例如“来自员工,其中id = 1”,则会通过id = 1加载用户实例。

由于Employee实体不是抽象类,我希望hibernate将它作为Employee实例加载。

详细介绍我的案例;我的客户中有许多员工,其中一些员工可以使用系统作为用户,而其中一些员工则不能。此外,我还有一个名为Managers的第三个表,它也扩展了Employee实体。同一个人可以是员工,用户和只有一个身份证的经理。

在java继承中,这可能是如此简单,但为什么不在JPA?我使用错误的继承策略吗?任何想法都将不胜感激。

感谢。

0 个答案:

没有答案
相关问题