package database.jpa; import javax.persistence.EntityManager; import javax.persistence.EntityManagerFactory; import javax.persistence.Persistence; import java.util.List; public class JpaPersonDAO implements PersonDAO { private EntityManagerFactory emf = Persistence.createEntityManagerFactory("hr"); @Override public List<Person> findAll() { EntityManager em = emf.createEntityManager(); em.getTransaction().begin(); List<Person> people = em.createQuery( "select p from Person p", Person.class).getResultList(); em.getTransaction().commit(); em.close(); return people; } @Override public Person findById(Integer id) { EntityManager em = emf.createEntityManager(); em.getTransaction().begin(); Person person = em.find(Person.class, id); em.getTransaction().commit(); em.close(); return person; } @Override public Integer save(Person p) { EntityManager em = emf.createEntityManager(); em.getTransaction().begin(); em.persist(p); em.getTransaction().commit(); em.close(); return p.getId(); } @Override public void delete(Person p) { EntityManager em = emf.createEntityManager(); em.getTransaction().begin(); em.remove(em.find(Person.class, p.getId())); em.getTransaction().commit(); em.close(); } @Override public List<Integer> getIds() { EntityManager em = emf.createEntityManager(); em.getTransaction().begin(); List<Integer> ids = em.createQuery("select p.id from Person p", Integer.class) .getResultList(); return ids; } }