package cz.cvut.fel.adaptiverestfulapi.example; import javax.persistence.EntityManager; import javax.persistence.EntityManagerFactory; import java.sql.DriverManager; import java.sql.SQLException; public class PersistenceContext { private static PersistenceContext singleton; private EntityManagerFactory factory; private EntityManager manager; public static PersistenceContext getInstance() { if (singleton == null) { singleton = new PersistenceContext(); } return singleton; } public EntityManager getManager() { return this.manager; } public void init() throws Exception { Class.forName("org.apache.derby.jdbc.EmbeddedDriver"); DriverManager.getConnection("jdbc:derby:memory:example-jpa;create=true").close(); this.factory = javax.persistence.Persistence.createEntityManagerFactory("example-manager-factory"); this.manager = this.factory.createEntityManager(); } public void destroy() throws Exception { if (this.manager != null) { this.manager.close(); } if (this.factory != null) { this.factory.close(); } DriverManager.getConnection("jdbc:derby:memory:example-jpa;shutdown=true").close(); } }