我正在写一些建议,我希望交易在获得建议前进行提交。它似乎适用于保存和删除,但是当我更新时,它会运行彻底的建议,然后抛出异常。春季AOP订购 - 建议之前的交易
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错误... – markthegrea 2011-02-16 21:30:36