JPA 联合策略

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

在联合策略中,每个实体类都会生成一个单独的表。每个表的属性都与主键连接。它消除了重复的可能性。

以下语法表示联合策略: -

联合策略示例

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

因此,子类 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 下生成以下目录层次结构。


JPA Joined strategy

输出

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

  • Select * from employee_details

JPA Joined strategy
  • Select * from active_employee

JPA Joined strategy
  • Select * from retired_employee

JPA Joined strategy