JPA Table-per-class Strategy
In table-per-class strategy, for each sub entity class a separate table is generated. Unlike joined strategy, no separate table is generated for parent entity class in table-per-class strategy.
The following syntax represents the table-per-class strategy: –
Table-per-class Example
In this example, we will categorize employees into active employees and retired employees.
Thus, the subclass ActiveEmployees and RetiredEmployees inherits the e_id and e_name fields of parent class Employee.
Now, follow the below steps to create JPA project,
- Create a root entity class Employee.java under the com.tutoraspire.jpa.inheritence package and specify all the required variables and annotations.
Employee.java
- Create an entity class ActiveEmployee.java (subclass of Employee.java) under com.tutoraspire.jpa.inheritence package.
ActiveEmployee.java
- Create another entity class RetiredEmployee.java (subclass of Employee.java) under com.tutoraspire.jpa.inheritence package.
RetiredEmployee.java
- Now, map the entity class and other databases confiuguration in Persistence.xml file.
Persistence.xml
- Create a persistence class EmployeePersistence.java under com.tutoraspire.jpa.persistence package. This class is used to initialize an object and persist it.
EmployeePersistence.java
Output:
After the execution of the program, two tables are generated in MySQL workbench.
Now, fetch data from each table separately to generate the output.
- Select * from active_employee
- Select * from retired_employee