Spring + Struts + Hibernate 설정에서 선언적 트랜잭션 관리를 구현하려고합니다. 이것은 내가 내 FooService 클래스에서 두 개의 공용 메서드를 정의트랜잭션이 Spring 선언적 트랜잭션 모드에서 작동하지 않는 것 같습니다.
<property>
<props>
<prop key="foodoo*">PROPAGATION_REQUIRED,-FooException</prop>
</props>
</property>
내 applicationcontext.xml의 일부입니다 -> UpdateFoo, foodooTest 및 (업데이트 논리가) 두 개인 방법 -> Test1을하고 Test2를
호출은 같이 간다 :
이UpdateFoo->foodooTest->Test1
->Test2
(foodooTest 트랜잭션을 유발한다) 을 나는 콩을 만들
FooService fooService = (FooService)context.getBean("fooService");
//and call
fooService.UpdateFoo();
Test2는 FooException을 throw하므로 트랜잭션이 롤백 될 것으로 예상됩니다. 그러나 그렇지 않습니다. 커밋은 각 Test1과 Test2에서 발생합니다 (예외가 발생할 때까지). 업데이트를 위해 최대 절전 모드 getHibernateTemplate.Merge()를 사용합니다. 내 db 엔진은 InnoDB입니다.
여기에 무엇이 누락되어 있는지 잘 모르겠습니다.
당신은 관련성 suff를 게시해야한다. – Ralph