+ }
+ }
+
+ @Override
+ public EntityManager begin() {
+ EntityManager em = factory.createEntityManager();
+ EntityTransaction transaction = em.getTransaction();
+ transaction.begin();
+ entityManager.set(em);
+ return em;
+ }
+
+ @Override
+ public void commit(EntityManager aEntityManager) {
+ try {
+ aEntityManager.getTransaction().commit();
+ } finally {
+ aEntityManager.close();
+ entityManager.set(null);
+ }
+ }
+
+ @Override
+ public void rollback(EntityManager aEntityManager) {
+ try {
+ EntityTransaction transaction = aEntityManager.getTransaction();
+ if (transaction.isActive()) {
+ transaction.rollback();
+ }