我在同一个班级中一个接一个地在三个不同的表上执行三次crud操作。如果其中任何一个发生异常。怎么能回滚在spring + hibernate之前执行的其他crud。
答案 0 :(得分:0)
在方法上使用@Transactional注释并指定事务管理器。
来自Spring文档: http://docs.spring.io/autorepo/docs/spring/4.2.x/spring-framework-reference/html/transaction.html
<bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource"/>
</bean>
<tx:annotation-driven transaction-manager="txManager"/>
在您的代码中:
@Transactional
public void updateThreeTables() {
// Update
// Update
// This error will rollback all three
}