JPA Table-per-class 策略

2024 年 8 月 29 日 | 阅读 2 分钟

在 table-per-class 策略中,对于每个子实体类,都会生成一个单独的表。与 joined 策略不同,在 table-per-class 策略中,不会为父实体类生成单独的表。

以下语法表示 table-per-class 策略: -

Table-per-class 示例

在本例中,我们将员工分为在职员工和退休员工。

因此,子类 ActiveEmployees 和 RetiredEmployees 继承了父类 Employee 的 e_id 和 e_name 字段。

现在,按照以下步骤创建 JPA 项目:

  • 在 com.javatpoint.jpa.inheritence 包下创建一个根实体类 Employee.java,并指定所有必需的变量和注解。

Employee.java

  • 在 com.javatpoint.jpa.inheritence 包下创建一个实体类 ActiveEmployee.java (Employee.java 的子类)。

ActiveEmployee.java

  • 在 com.javatpoint.jpa.inheritence 包下创建另一个实体类 RetiredEmployee.java (Employee.java 的子类)。

RetiredEmployee.java

  • 现在,将实体类和其他数据库配置映射到 Persistence.xml 文件中。

Persistence.xml

  • 在 com.javatpoint.jpa.persistence 包下创建一个持久化类 EmployeePersistence.java。此类用于初始化一个对象并持久化它。

EmployeePersistence.java

输出

程序执行完毕后,将在 MySQL workbench 中生成两个表。

现在,分别从每个表中获取数据以生成输出。

  • Select * from active_employee

JPA Table-per-class Strategy
  • Select * from retired_employee

JPA Table-per-class Strategy
下一主题#