【发布时间】:2011-02-16 21:18:57
【问题描述】:
我正在写一些建议,我希望事务在得到建议之前提交。它似乎适用于保存和删除,但是当我更新时,它会彻底运行建议,然后抛出异常。
try {
retVal = pjp.proceed();
} catch (Exception e) {
PSPSFaultException fault = new PSPSFaultException(e);
pmLog.error(ERR_MSG, fault);
throw fault;
}
正如您在此处看到的,我正在尝试将异常包装在我们自己的运行时异常中。
我试过订购:
<tx:annotation-driven transaction-manager="txManager" order="1"/>
和
@Around( "execution(* blah.blah.PersistenceProvider.*(..))")
@Order(value=2)
public Object persistenceWrapper(ProceedingJoinPoint pjp) throws Throwable {
但这似乎对堆栈或功能没有任何影响。
@Transactional(propagation = Propagation.REQUIRED)
public class PersistenceProviderImpl extends HibernateDaoSupport implements PersistenceProvider {
@Override
public void update(Object o) {
this.getHibernateTemplate().update(o);
}
有没有办法让更新在建议之前触发?交易处于 dao 级别...
【问题讨论】:
-
具体来说,我的测试正在更新数据库中没有的内容。我收到 HibernateOptimisticLockingFailureException 错误...