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.


  • Create an entity class ActiveEmployee.java (subclass of Employee.java) under com.tutoraspire.jpa.inheritence package.


  • Create another entity class RetiredEmployee.java (subclass of Employee.java) under com.tutoraspire.jpa.inheritence package.


  • Now, map the entity class and other databases confiuguration in Persistence.xml file.


  • Create a persistence class EmployeePersistence.java under com.tutoraspire.jpa.persistence package. This class is used to initialize an object and persist it.



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