JPA Tutorial - persist() Example

In this tutorial, we will learn how to persist or store an object into a database table using JPA. In this tutorial, we will use the Hibernate framework as a JPA provider.

The Java Persistence API (JPA) is the Java standard for mapping Java objects to a relational database. Mapping Java objects to database tables and vice versa is called Object-relational mapping (ORM). 

In JPA the EntityManager is an interface that is associated with a persistence context. It is used to interact with the persistence context. We use persist(Object entity)method to persist a managed Entity.
Let's start implementing this tutorial via creating simple maven project in Eclipse IDE.

1. Create a Simple Maven Project

Use How to Create a Simple Maven Project in Eclipse article to create a simple Maven project in Eclipse IDE.

2. Project Directory Structure

The project directory structure for your reference - 

3. Add jar Dependencies to pom.xml

        <!-- -->
        <!-- -->

4. Creating the JPA Entity Class(Persistent class)

Create a Student entity class under net.javaguides.hibernate.entity package as follows.
package net.javaguides.hibernate.entity;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;

@Table(name = "student")
public class Student {

    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "id")
    private int id;

    @Column(name = "first_name")
    private String firstName;

    @Column(name = "last_name")
    private String lastName;

    @Column(name = "email")
    private String email;

    public Student() {


    public Student(String firstName, String lastName, String email) {
        this.firstName = firstName;
        this.lastName = lastName; = email;

    public int getId() {
        return id;

    public void setId(int id) { = id;

    public String getFirstName() {
        return firstName;

    public void setFirstName(String firstName) {
        this.firstName = firstName;

    public String getLastName() {
        return lastName;

    public void setLastName(String lastName) {
        this.lastName = lastName;

    public String getEmail() {
        return email;

    public void setEmail(String email) { = email;

    public String toString() {
        return "Student [id=" + id + ", firstName=" + firstName + ", lastName=" + lastName + ", email=" + email + "]";

5. JPA persist() Entity

Let's use EntityManager interface persist() methods to store Student into a database.
package net.javaguides.hibernate;

import javax.persistence.EntityManager;
import javax.persistence.EntityTransaction;

import net.javaguides.hibernate.entity.Student;
import net.javaguides.hibernate.util.JPAUtil;

 *  JPA CRUD Operations
 * @author Ramesh Fadatare
public class CRUDOperations {
    public void insertEntity() {
        EntityManager entityManager = JPAUtil.getEntityManagerFactory().createEntityManager();
        EntityTransaction entityTransaction = entityManager.getTransaction();
        Student student = new Student("Ramesh", "Fadatare", "");

6. Create a JPA configuration file

Create an XML file named as persistence.xml under src/main/java/META-INF folder and write the following code in it.
    <persistence-unit name="PERSISTENCE">
        <description> Hibernate JPA Configuration Example</description>
            <property name="javax.persistence.jdbc.driver"
    value="com.mysql.cj.jdbc.Driver" />
            <property name="javax.persistence.jdbc.url"
    value="jdbc:mysql://localhost:3306/hibernate_db" />
            <property name="javax.persistence.jdbc.user" value="root" />
            <property name="javax.persistence.jdbc.password"
    value="root" />
            <property name="hibernate.show_sql" value="true" />
            <property name="" value="create-drop" />

7. Create a JPA helper class

Create a helper class to bootstrap a JPA EntityManagerFactory.
package net.javaguides.hibernate.util;

import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;

public class JPAUtil {
    private static final String PERSISTENCE_UNIT_NAME = "PERSISTENCE";
    private static EntityManagerFactory factory;

    public static EntityManagerFactory getEntityManagerFactory() {
        if (factory == null) {
            factory = Persistence.createEntityManagerFactory(PERSISTENCE_UNIT_NAME);
        return factory;

    public static void shutdown() {
        if (factory != null) {

8. Create the main class and run an application

Here is the main class to persist student object using the EntityManager.persist() method.
package net.javaguides.hibernate;

public class App {
 public static void main(String[] args) {
  CRUDOperations crudOperations = new CRUDOperations();
Learn complete JPA at JPA Tutorial - Java Persistence API
Learn Hibernate ORM Framework at Hibernate Tutorial