我对 EJB 和 Bean Managed Transactions 都是新手。在网上报废后,我发现我可以编写一个 EJ 会话 Bean,它以“bean 管理的方式”进行事务,如下所示:
@TransactionManagement(value=TransactionManagementType.BEAN)
@Stateless
public class OperationBean {
@Resource
private UserTransaction userTransaction;
public void operation() {
try{
userTransaction.begin();
Op1();
Op2();
Op3();
userTransaction.commit();
} catch(Exception e){
userTransaction.rollback();
}
}
}
但是,我不明白如果 Op3() 抛出异常会发生什么。Op1() 和 Op2() 如何撤消?
另一个问题是如何将它绑定到 JSF?我需要在 JSF 中编写一个表单,将其数据发送到服务器,并且 OperationBean 根据接收到的数据执行 3 次操作。这些操作确实涉及数据库操作(3 次更新)并且单独没有意义。
谢谢!