Home » JPA Table-per-class Strategy

JPA Table-per-class Strategy

by Online Tutorials Library

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

JPA Table-per-class Strategy

  • Select * from retired_employee

JPA Table-per-class Strategy

Next Topic#

You may also like