Memory'de çalışan bir veritabanı olan HSQLDB'e JPA ile erişebilir ve kullanabilirsiniz.
Öncelikle JPA provider olarak Hibernate ve HSQLDB için driver ekliyoruz :
<!-- https://mvnrepository.com/artifact/org.hibernate/hibernate-core -->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>5.2.6.Final</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.hsqldb/hsqldb -->
<dependency>
<groupId>org.hsqldb</groupId>
<artifactId>hsqldb</artifactId>
<version>2.3.4</version>
</dependency>
persistence.xml aşağıdaki gibi olacak:
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.1"
xmlns="http://xmlns.jcp.org/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd">
<persistence-unit name="TestJPA"
transaction-type="RESOURCE_LOCAL">
<description>JPA Test</description>
<provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
<class>com.test.entity.Test</class>
<properties>
<property name="hibernate.dialect" value="org.hibernate.dialect.HSQLDialect" />
<property name="hibernate.hbm2ddl.auto" value="create-drop" />
<property name="hibernate.show_sql" value="true" />
<property name="javax.persistence.jdbc.driver" value="org.hsqldb.jdbcDriver" />
<property name="javax.persistence.jdbc.url" value="jdbc:hsqldb:mem:unittests" />
<property name="javax.persistence.jdbc.user" value="sa" />
<property name="javax.persistence.jdbc.password" value="" />
</properties>
</persistence-unit>
</persistence>
Artık JPA ile veritabanına erişebiliriz. Aşağıdaki gibi test edilebilir :
EntityManagerFactory entityManagerFactory=
Persistence.createEntityManagerFactory("TestJPA",map);
EntityManager entityManager=entityManagerFactory.createEntityManager();
Test t=new Test();
t.setId(1);
t.setName("Ali");
entityManager.getTransaction().begin();
entityManager.persist(t);
entityManager.getTransaction().commit();
entityManager.close();
entityManagerFactory.close();