Я пишу несколько советов и хочу, чтобы транзакции были зафиксированы до того, как они дойдут до совета. Похоже, что это работает для сохранения и удаления, но когда я обновляюсь, он выполняет тщательный совет, а затем выдает исключение.
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);
}
Есть ли способ заставить обновление сработать перед советом? Транзакции находятся на уровне дао ...