版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/rocklee/article/details/88760037
很久没写spring应用, 再捡回来忘得差不多了, 总是想着用throw new exception("...")来让事务回滚, 但实际测试并未如愿, 虽然会触发异常但还是会更新数据库, 花了半天时间未果, 后来翻查以前写下的webapp, 发现并不能用throw new exception来让事务回滚, 事务回滚默认的exception是runtimeexception!
所以,应该写成:
@Transactional
public void testUpdate() {
.....
if (满足你的回滚条件) {
throw new RuntimeException("错误信息");
}
}
而如果除了回滚, 还需要带额外一些错误信息, 那可以自定义Exception,并在rollbackFor指定新的Exception类型, 详细请参考 https://blog.csdn.net/rocklee/article/details/52857004