我试图在Spring + Struts + Hibernate设置中实现声明式事务管理。 这是我的applicationContext.xml的一部分在Spring声明式事务模式下,事务似乎不起作用
<property>
<props>
<prop key="foodoo*">PROPAGATION_REQUIRED,-FooException</prop>
</props>
</property>
我已经定义在我FooService接口类两个公共方法 - > UpdateFoo,foodooTest 和两个私有方法(其具有更新逻辑) - >测试1和TEST2
呼叫是这样:
UpdateFoo->foodooTest->Test1
->Test2
(foodooTest应该触发交易) 我创建bean
FooService fooService = (FooService)context.getBean("fooService");
//and call
fooService.UpdateFoo();
Test2抛出FooException,因此我期望事务回滚。但事实并非如此。提交发生在每个Test1和Test2中(直到异常)。 我使用Hibernate getHibernateTemplate.Merge()进行更新。我的数据库引擎是InnoDB。
我不知道我在这里错过了什么。
你应该发布更多相关SUFF:Spring配置以及触发交易的方法。 – Ralph