我有两张桌子。员工和用户。
员工用 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 中呢?我是否使用了错误的继承策略?任何想法将不胜感激。
谢谢。