69 lines
1.6 KiB
Plaintext
Executable File
69 lines
1.6 KiB
Plaintext
Executable File
package com.fp.persistence.commondb;
|
|
|
|
import javax.persistence.EntityManager;
|
|
import javax.persistence.PersistenceException;
|
|
import javax.transaction.NotSupportedException;
|
|
import javax.transaction.RollbackException;
|
|
import javax.transaction.Status;
|
|
import javax.transaction.SystemException;
|
|
import javax.transaction.UserTransaction;
|
|
|
|
public class FlipUserTransaction implements UserTransaction {
|
|
|
|
private EntityManager em;
|
|
|
|
public FlipUserTransaction(EntityManager em) {
|
|
this.em = em;
|
|
}
|
|
|
|
public void begin() throws NotSupportedException {
|
|
if (em.getTransaction().isActive()) {
|
|
throw new NotSupportedException();
|
|
}
|
|
em.getTransaction().begin();
|
|
}
|
|
|
|
public void commit() throws RollbackException {
|
|
try {
|
|
em.getTransaction().commit();
|
|
} catch (javax.persistence.RollbackException e) {
|
|
throw new RollbackException(e.getMessage());
|
|
}
|
|
}
|
|
|
|
public void rollback() throws SystemException {
|
|
try {
|
|
em.getTransaction().rollback();
|
|
} catch (PersistenceException e) {
|
|
throw new SystemException(e.getMessage());
|
|
}
|
|
}
|
|
|
|
public void setRollbackOnly() {
|
|
em.getTransaction().setRollbackOnly();
|
|
}
|
|
|
|
public int getStatus() {
|
|
if (em.getTransaction().isActive()) {
|
|
return Status.STATUS_ACTIVE;
|
|
} else {
|
|
return Status.STATUS_NO_TRANSACTION;
|
|
}
|
|
}
|
|
|
|
public void setTransactionTimeout(int timeout) {
|
|
throw new UnsupportedOperationException();
|
|
}
|
|
|
|
public void close() {
|
|
try {
|
|
if (em.isOpen()) {
|
|
em.clear();
|
|
em.close();
|
|
}
|
|
} catch (Exception e) {
|
|
// No hacer nada la sessioo no est aabierta
|
|
}
|
|
}
|
|
}
|