@Singelton
class A {
@Resource
private TrsnactionSynchronizationRegistry tsr;
@TransactionAttribute(TransactionAttributeType.Required)
method () {
// here tsr.getTransactionStatus() is 0 means active
EntityClass entity = new EnityClass();
em.persist(entity);// Duplicate Key exception
em.flush();
// here tsr.getTransactionStatus() is 1 means markedForRollback;
}
在使用容器管理事务和休眠的 ejb 单一 bean 中,按照上面的代码。由于 Duplicate key Exception 运行 em.persist(entity) 后,事务被标记为回滚。但我想保持交易活跃,我怎样才能避免它或将交易状态更改为活跃。