当前位置: 首页 > 知识库问答 >
问题:

避免JPA抽象类的额外表

宋健柏
2023-03-14
@Entity
@Inheritance(strategy = InheritanceType.JOINED)
abstract class Employee {
    @Id
    private Long id;

    private String firstName;
    private String secondName;
}

@Entity
abstract class ProjectManager extends Employee {
    @OneToMany(mappedBy="manager")
    private List<Developer> developers;
}


@Entity
abstract class Developer extends Employee {
    @ManyToOne
    @JoinColumn(name="project_manager_id")
    private ProjectManager manager;
}

@Entity
class JavaProjectManager extends ProjectManager {
    private String someCustomProperty;
}

@Entity
class JavaDeveloper extends Developer {
    private String skill;
}

此外,我不想将开发人员从ProjectManager转移到JavaProjectManager,因为我有更多从ProjectManager扩展的类,需要开发人员。

共有1个答案

令狐新翰
2023-03-14

TABLE_PER_CLASS完全符合您的要求。

此类型仅为非抽象表创建/使用表。

请在此处阅读有关各种类型的更多信息:

 类似资料:
  • 问题内容: 我正在多线程环境中聚合键的多个值。密钥未知。我以为我会做这样的事情: 我看到的问题是,每次运行此方法时,我都需要创建一个新的实例,然后将其丢弃(在大多数情况下)。这似乎是对垃圾收集器的不合理滥用。是否有更好的,线程安全的方法来初始化这种结构而不必使用该方法?我对使该方法不返回新创建的元素的决定感到惊讶,并且对缺少除非被要求(可以这么说)实例化实例的延迟的方法感到惊讶。 问题答案: Ja

  • 我正在开发一个旧的Struts应用程序,它有一个抽象操作,通过填充Excel模板文件来创建Excel导出。 每个Excel导出操作都扩展此父类,并添加自己的实现来填充Excel模板,并定义自己的模板和输出文件名。 实现是这样的,这就是SonarQube“警告”代码重复的地方: 有没有办法避免重复?

  • 今天我开始学习ReactJS,一个小时后我就开始面对这个问题。。我想在页面上的div中插入一个有两行的组件。下面是我正在做的一个简化示例。 我有一个html: 渲染功能如下: 下面我调用渲染: 生成的HTML如下所示: 我不是一个非常高兴的问题,这个问题迫使我将所有内容都打包在一个div“DeadSimpleComponent”中。在没有显式DOM操作的情况下,最好且简单的解决方法是什么? 201

  • 问题内容: 您将如何在以下示例代码中配置注释?我只想保留JPA注释,避免使用Hibernate特定的依赖项。 下面的代码正确吗? (这些类将具有多个版本,RefSomeOtherExample等,并且每个类一个db表。有些可能会添加其他字段(列),但大多数只会使用继承自“ RefData”基类的基本字段。) 基类: 最终,我想使用Hibernate的SchemaExport类从中生成模式创建脚本。

  • 目前,我正在尝试使用Java 9和javax开发一些代码。编辑xml文件的xml库(对于我的任务都是必需的),我在添加子节点时遇到了一些奇怪的问题。 这是XML文件: 我想编辑它构建如下内容: 现在,代码的第一次运行在<代码> 这是运行程序2次后生成的XML。如您所见,它在<代码> 在更新文件之前想知道这些节点的内容是什么,我写了下一段代码: 第一次执行: 第二次执行: 第三次执行 最后,这是Ja

  • 问题内容: 我的数据模型代表法人实体,例如企业或个人。两者都是纳税实体,都具有TaxID,电话号码和邮件地址的集合。 我有一个Java模型,其中有两个扩展抽象类的具体类。抽象类具有两个具体类共有的属性和集合。 我正在 MySQL* 数据库上使用 Hibernate JPA注释,其类如下: * 问题是,和对象需要参考他们的主人,这是一个。hibernate抱怨: 看来这将是一个相当普遍的Java继承