【发布时间】:2016-06-22 14:21:48
【问题描述】:
我正在开发一个使用以下技术的项目:Java 1.8、EJB 3、JSF (Primefaces)、Oracle、Weblogic 12.2.1
我有一个“保存”按钮,它运行一个耗时的 EJB 事务(在 Oracle 中读取、更新、写入)。
当方法运行时,用户会看到一个带有“取消”按钮的“请稍候”模式对话框。 当用户按下“取消”按钮而不解锁我的(Primefaces)用户界面时,我如何中止(显式回滚)我的 EJB 事务?
本质上,如何从其他方法回滚已经运行的事务? 这些事务是容器管理的事务。
我的代码的 sn-p:
@Named
@ViewScoped
public class MyBean implements Serializable {
@Inject
private IFacade facade;
public String save() {
facade.save();
}
public void abortSave() {
// Cancel save transaction.
}
}
@Stateless
public class FacadeImpl implements IFacade {
@Override
public String save() {
// Transaction here, read, write, update DB.
}
}
【问题讨论】:
标签: jsf jakarta-ee transactions ejb abort