/** * Verify if the JPA provider is EclipseLink */ public static boolean isEclipseLink(EntityManagerFactory emf) { try { getEntityManagerFactory(emf); } catch (IllegalArgumentException iae) { return false; } return true; }
/** * Retrieve the shared session broker from the EMF. */ public static SessionBroker getSessionBroker(EntityManagerFactory emf) { return getEntityManagerFactory(emf).getSessionBroker(); }
/** * Retrieve the shared server session from the EMF. */ public static Server getServerSession(EntityManagerFactory emf) { return getEntityManagerFactory(emf).getServerSession(); }
/** * Retrieve the shared database session from the EMF. */ public static DatabaseSession getDatabaseSession(EntityManagerFactory emf) { return getEntityManagerFactory(emf).getDatabaseSession(); }
@Override public void rollbackTransaction(EntityManager em) { AbstractSession session = JpaHelper.getEntityManagerFactory(em).getDatabaseSession(); session.getExternalTransactionController().rollbackTransaction(session); } }
@Override public void rollbackTransaction(EntityManager em) { AbstractSession session = JpaHelper.getEntityManagerFactory(em).getDatabaseSession(); session.getExternalTransactionController().rollbackTransaction(session); } }
@Override public void commitTransaction(EntityManager em) { AbstractSession session = JpaHelper.getEntityManagerFactory(em).getDatabaseSession(); session.getExternalTransactionController().commitTransaction(session); }
@Override public void commitTransaction(EntityManager em) { AbstractSession session = JpaHelper.getEntityManagerFactory(em).getDatabaseSession(); session.getExternalTransactionController().commitTransaction(session); }
/** * @see org.seasar.framework.jpa.metadata.EntityDescProvider#createEntityDesc(javax.persistence.EntityManagerFactory, java.lang.Class) */ public EclipseLinkEntityDesc createEntityDesc(EntityManagerFactory emf, Class<?> entityClass) { ServerSession serverSession = JpaHelper.getEntityManagerFactory(emf) .getServerSession(); if (serverSession.getDescriptor(entityClass) != null) { return new EclipseLinkEntityDesc(entityClass, serverSession); } return null; }
@Override public void beginTransaction(EntityManager em) { AbstractSession session = JpaHelper.getEntityManagerFactory(em).getDatabaseSession(); session.getExternalTransactionController().beginTransaction(session); // EMs obtained outside the transaction is now prevented from participating or flushing to the trans unless join is called. if (!em.isJoinedToTransaction()) { em.joinTransaction(); } }
@Override public void beginTransaction(EntityManager em) { AbstractSession session = JpaHelper.getEntityManagerFactory(em).getDatabaseSession(); session.getExternalTransactionController().beginTransaction(session); // EMs obtained outside the transaction is now prevented from participating or flushing to the trans unless join is called. if (!em.isJoinedToTransaction()) { em.joinTransaction(); } }