/** * Annule la transaction courante sur l'instance courante de Entity Manager. Si la transaction * courante n'est pas démarrée, cette méthode n'effectue aucune opération. <br> * <strong>À utiliser uniquement au niveau Service.</strong> */ public static void annulerTransaction() { try { log("rollback transaction"); EntityManager em = threadLocalEntityManager.get(); if (em.getTransaction().isActive()) { log("rollback transaction effectue"); em.getTransaction().rollback(); } } catch (Exception ex) { Logger.getLogger(JpaUtil.class.getName()).log(Level.SEVERE, null, ex); } }
/** * Démarre une transaction sur l'instance courante de Entity Manager. <br> * <strong>À utiliser uniquement au niveau Service.</strong> */ public static void ouvrirTransaction() { log("debut transaction"); try { EntityManager em = threadLocalEntityManager.get(); em.getTransaction().begin(); } catch (Exception ex) { Logger.getLogger(JpaUtil.class.getName()).log(Level.SEVERE, null, ex); } }
/** * Valide la transaction courante sur l'instance courante de Entity Manager. <br> * <strong>À utiliser uniquement au niveau Service.</strong> * * @exception RollbackException lorsque le <em>commit</em> n'a pas réussi. */ public static void validerTransaction() throws RollbackException { log("commit transaction"); try { EntityManager em = threadLocalEntityManager.get(); em.getTransaction().commit(); } catch (Exception ex) { Logger.getLogger(JpaUtil.class.getName()).log(Level.SEVERE, null, ex); } }
/** * Ferme l'instance courante de Entity Manager (liée à ce Thread). <br> * <strong>À utiliser uniquement au niveau Service.</strong> */ public static void fermerEntityManager() { log("fermeture du contexte de persistance"); EntityManager em = threadLocalEntityManager.get(); em.close(); threadLocalEntityManager.set(null); }
/** * Créée l'instance courante de Entity Manager (liée à ce Thread). <br> * <strong>À utiliser uniquement au niveau Service.</strong> */ public static void creerEntityManager() { log("création du contexte de persistance"); threadLocalEntityManager.set(entityManagerFactory.createEntityManager()); }
/** * Retourne l'instance courante de Entity Manager. <br> * <strong>À utiliser uniquement au niveau DAO.</strong> * * @return instance de Entity Manager */ protected static EntityManager obtenirEntityManager() { log("obtention du contexte de persistance"); return threadLocalEntityManager.get(); }