/** Generic persist test. */ public void verifyPersist(Object object) { EntityManager em = createEntityManager(); try { beginTransaction(em); em.persist(object); commitTransaction(em); beginTransaction(em); verifyObjectInCacheAndDatabase(object); rollbackTransaction(em); closeEntityManager(em); } catch (RuntimeException exception) { if (isTransactionActive(em)) { rollbackTransaction(em); } closeEntityManager(em); throw exception; } }
/** Generic remove test. */ public void verifyPersistAndRemove(Object object) { EntityManager em = createEntityManager(); try { beginTransaction(em); em.persist(object); commitTransaction(em); closeEntityManager(em); em = createEntityManager(); beginTransaction(em); object = em.find(object.getClass(), getServerSession(getPersistenceUnitName()).getId(object)); em.remove(object); commitTransaction(em); verifyDelete(object); closeEntityManager(em); } catch (RuntimeException exception) { if (isTransactionActive(em)) { rollbackTransaction(em); } closeEntityManager(em); throw exception; } }
/** Close the entity manager. If a transaction is active, then roll it back. */ public void closeEntityManagerAndTransaction(EntityManager entityManager) { if (isTransactionActive(entityManager)) { rollbackTransaction(entityManager); } closeEntityManager(entityManager); }