Можно использовать поддержку @Transactional в Spring Framework вне контейнера Spring. В справочной документации есть глава об аспекте AspectJ. Я пытаюсь использовать его в своем приложении для калитки, но без положительного результата.
Приложение-context.xml:
<tx:annotation-driven transaction-manager="transactionManager" mode="aspectj" />
<context:annotation-config />
<context:component-scan base-package="com.wicket.app"/>
<context:spring-configured />
<bean id="annotationTransactionAspect" factory-method="aspectOf"
class="org.springframework.transaction.aspectj.AnnotationTransactionAspect">
<property name="transactionManager" ref="transactionManager"></property>
</bean>
В моем классе формы, аннотированном @Configurable, у меня есть:
@Transactional
public void process(IFormSubmittingComponent submittingComponent) {
super.process(submittingComponent);
getDao().getEntityManager().flush();
}
Трассировка стека:
org.apache.openjpa.persistence.TransactionRequiredException: Can only perform operation while a transaction is active.