以下是我使用JdbcTemplate的示例。由于runTimeException,我的问题doMultipleCalls()
在步骤3失败,一切都会回滚。
我@Transactional
仅对doMultipleCalls
进行注释,但对其他人进行注释。是否在所有这些事务中共享相同的事务会话?如果不是如何跨越同一个交易会话?
@Component
public class MyRespository {
@Autowired
JdbcTemplate template
@Transactional
public void doMutlipleCalls() {
callUpdate(); //1
callInsert(); //2
callDelete(); //3
}
callUpdate() {
template.query(...)
}
callInsert() {
template.query(...)
}
callDelete() {
template.query(..)
}
}
答案 0 :(得分:1)
是否在所有这些事务中共享相同的事务会话?
是。该事务在输入doMultipleCalls()
方法之前开始,并在返回后完成。
答案 1 :(得分:1)
当你将spring jdbc与transactional一起使用时,它的行为方式与jpa相同。您的操作包含在同一事务中。
选中article。