Spring的回滚机制:
Spring事务默认对非检查型异常(运行时异常)起作用;
spring事务默认对检查型异常(非运行时异常)不起作用;
但是我们可以指定对哪种类型异常起作用,使用 @Transactional 的 rollbackFor属性 指定要回滚的异常;
也可以使用 noRollbackFor属性 指定哪种异常不进行回滚;
为什么要使用事务的隔离机制?
为了解决:数据脏读、幻读和不可重复读;
Spring的隔离机制:
@Transactional(isolation = Isolation.DEFAULT)
ISOLATION_DEFAULT:Spring的默认隔离级别,默认使用数据库自身隔离级别;
READ_UNCOMMITTED:未提交读;
READ_COMMITTED:已提交读;(Oracle的默认)
REPEATABLE_READ:可重复读 (mysql的默认)
SERIALIZABLE:序列化;
为什么会出现事务的隔离机制? 解决数据脏读、幻读和不可重复读;