1

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

员工用 Inheritance(strategy = InheritanceType.JOINED) 注释用户用 @PrimaryKeyJoinColumn(name = "super_id") 注释

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

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

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

详细介绍我的情况;我的客户中有很多员工,其中一些可以作为用户使用系统,而有些则不能。而且我还有一个名为 Managers 的第三个表,它也扩展了 Employee 实体。同一个人可以是只有一个 ID 的员工、用户和经理。

在 java 中继承是可能的而且很容易,但为什么不在 JPA 中呢?我是否使用了错误的继承策略?任何想法将不胜感激。

谢谢。

4

0 回答 0