isolation
隔离级别
隔离级别由低到高为:read-uncommited < read-commited < repeatable-read < serialized-read
特性
* 安全性:级别越高,多事务并发时,越安全。因为共享的数据越来越少,事务间彼此干扰减少。
* 并发性:级别越高,多事务并发时,并发越差。因为共享的数据越来越少,事务间阻塞情况增多。
并发问题
propagation
传播行为
当涉及到事务嵌套(Service调用Service)时,可以设置:
* SUPPORTS = 不存在外部事务,则不开启新事务;存在外部事务,则合并到外部事务中。(适合查询)
* REQUIRED = 不存在外部事务,则开启新事务;存在外部事务,则合并到外部事务中。 (默认值)(适合增删改)
readonly
读写性
* true:只读,可提高查询效率。(适合查询)
* false:可读可写。 (默认值)(适合增删改)
timeout
事务超时时间
当前事务所需操作的数据被其他事务占用,则等待。
* 100:自定义等待时间100(秒)。
* -1:由数据库指定等待时间,默认值。(建议)
rollback-for
回滚属性
* 如果事务中抛出 RuntimeException,则自动回滚
* 如果事务中抛出 CheckException(非运行时异常 Exception),不会自动回滚,而是默认提交事务
* 处理方案 : 将CheckException转换成RuntimException上抛,或 设置 rollback-for="Exception"