Step 2: Entity Class and Persistence Unit

To store objects in an ObjectDB database using JPA we need to define an entity class:

  • Right click the project node (in the [Package Explorer] window), select New > Source Folder, enter src/main/java as Folder Name and click Finish.

  • Open the [New Java Class] dialog box, e.g. by right clicking the new source directory node (in the [Package Explorer] window) and selecting New > Class.
  • Enter guest as the package name - use exactly that case sensitive package name.
  • Enter Guest as the class name - use exactly that case sensitive class name.
  • Click Finish to create the new entity class.

A new class that should represent Guest objects in the database was created in the project (under Java Resources: src/main/java > guest).

Use copy and paste to replace the new source file content with the following code:

package guest;

import java.io.Serializable;
import java.sql.Date;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;

@Entity
public class Guest implements Serializable {
    private static final long serialVersionUID = 1L;

    // Persistent Fields:
    @Id @GeneratedValue
    Long id;
    private String name;
    private Date signingDate;

    // Constructors:
    public Guest() {
    }

    public Guest(String name) {
        this.name = name;
        this.signingDate = new Date(System.currentTimeMillis());
    }

    // String Representation:
    @Override
    public String toString() {
        return name + " (signed on " + signingDate + ")";
    }
}

The Guest entity class will represents guests in the database.

We also need to configure JPA by setting a META-INF/persistence.xml file:

  • Right click the src/main/resources node (in the [Project Explorer]) and select New > Folder.
  • The parent folder should be resources.
  • Enter META-INF as a new folder name and click Finish.

  • Right click the new META-INF folder in the [Project Explorer] window, select New > File, enter persistence.xml as file name and click Finish.
  • Verify that a new persistence.xml file was created as shown below:

Finally, use copy and paste to copy the following content to the persistence.xml file:

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://java.sun.com/xml/ns/persistence 
 http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">

  <persistence-unit name="GuestbookPU" transaction-type="RESOURCE_LOCAL">
    <provider>com.objectdb.jpa.Provider</provider>
    <properties>
      <property name="javax.persistence.jdbc.url" value="$objectdb/db/guests.odb"/>
      <property name="javax.persistence.jdbc.user" value="admin"/>
      <property name="javax.persistence.jdbc.password" value="admin"/>
    </properties>
  </persistence-unit>

</persistence>

Now ObjectDB should be used as a JPA provider with the specified database url.

The next step is adding a Spring DAO Component class that will manage Guest entity objects.