14 abril 2009

seam transaction

D:\Development\TOOLS_HOME\taylor\svn\applications\branches\taylor-tracker-1.2.0\ejb\src\main\java\net\taylor\tracker\web\TransactionScript.java

public Object run() {
try {
EntityManagerFactory emf = (EntityManagerFactory) lookup(persistenceUnitJndiName);
EntityManager em = emf.createEntityManager();
UserTransaction t = (UserTransaction) lookup("UserTransaction");
try {
t.begin();
em.joinTransaction();
Object o = persist(em);// do the work
em.flush();
t.commit();
return o;
} catch (Exception e) {
t.rollback();
throw e;
} finally {
em.close();
}
} catch (Exception x) {
throw new RuntimeException(x);
}
}

No hay comentarios: