[SEAM] seam的一个回滚问题
CarlKing
2009-09-01
一:执行 方法A----->对实体E1进行操作(增、删、改) 假设方法A public void a(){}
二:不执行 方法B----->回滚实体E1 假设方法B public void b(){}
也就是说,有2个方法,只有对方法B执行完后,才真正的对E1进行持久化操作 (执行顺序始终是 A->B )
高手出来讨论一下如何实现?
|
|
yangbo
2009-09-01
我的解决方案:
*使用seam managed persistent context 加 手工flush(FlushModeType.MANUAL) * 示例代码如下: @In EntityManager em; //a Seam-managed persistence context @Begin(flushMode=MANUAL) public void beginATransaction() { claim = em.find(Claim.class, claimId); } public void useA() { a(); if(//some condition) { b(); }else{ // 不持久化 } } @End public void b() { em.flush(); } |