Spring Annotation driver Транзакция с проблемой AspectJ - PullRequest
2 голосов
/ 31 августа 2011

Я использую AspectJ, время компиляции и весну 3.O. и Hibernate 3.0 ... Плетение AspectJ прекрасно работает для простых вещей, таких как ведение журнала, но это неправильно для транзакции

<tx:annotation-driven transaction-manager="transactionManager"
    mode="aspectj" order="1" />
<bean id="transactionManager"
    class="org.springframework.orm.hibernate3.HibernateTransactionManager">
    <property name="sessionFactory">
        <ref bean="sessionFactory" />
    </property>
</bean>

jar-файл Sprong-аспекта также присутствует в lib forlder, но поддержка транзакций по-прежнему не работает ..

я использую вот так

@Transactional(readOnly = false, propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
public void invokeService() throws Exception {
    insertUpdatePolicy();
}

В журнале не указываются никакие транзакции. Транзакции работают нормально с spring aop, но не с аспектомj, когда класс не определен в контейнере spring

Ответы [ 2 ]

0 голосов
/ 04 января 2012

я нашел ответ на эту проблему,

Мы должны помнить одну вещь: нам нужно поместить spring-aspect.jar в мой Aspect Path вместо пути к классу Java. В противном случае переплетение не выполняется.и транзакция не работает.

Второе, что мне не хватало после настройки весной = конфигурация компонента.

<bean class="org.springframework.transaction.aspectj.AnnotationTransactionAspect" factory-method="aspectOf">
<property name="transactionManager" ref="transactionManager"/>

0 голосов
/ 31 августа 2011

Пожалуйста, опубликуйте фактический код, который не работает.

Включить ведение журнала.Проверьте журналы, чтобы увидеть, управляются ли транзакции вообще.Если это так, то, вероятно, существует проблема с настройкой транзакций.

...