Spring 컨테이너 외부에서 Spring Framework의 @Transactional 지원을 사용할 수있다. 참조 문서에서 AspectJ aspect에 관한 장이다. 내 wicket 응용 프로그램에서 사용하려고하지만 긍정적 인 결과가 없습니다.Wicket with Spring 선언적 트랜잭션
응용 프로그램의 context.xml : @Configurable 주석이 내 폼 클래스에서
<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>
, 내가 가진 :
@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.
예, 내 잘못입니다. 이 간단한 솔루션이 더 좋습니다. 과장 할 필요가 없습니다. – nablik