假设我有一个实现 REQUIRED 事务方法的会话 bean:
@TransactionAttribute(TransactionAttributeType.REQUIRED)
public void doTransaction() throws Exception {
try {
...
// call to non-EJB bean object (not session, stateless or entity bean)
} catch (Exception e) {
context.setRollbackOnly();
throw e;
}
}
假设 doTransaction() 改变了非 bean 对象的内部状态,并且失败了。回滚是否恢复非bean的原始状态?如果不是,处理这种情况的推荐方法是什么?(或者不允许事务中的 POJO 调用?)