事务概念
事务是访问数据库的一个操作序列,数据库应用系统通过事务集来完成对数据库的存取。事务的正确执行使得数据库从一种状态转换为另一种状态。
事务必须服从ACID原则即:原子性(atomicity)、一致性(consistency)、隔离性(isolation)、持久性(durability)
spring七个事务传播属性(前两种常用):
- PROPAGATION_REQUIRED【propagation_required】 – 支持当前事务,如果当前没有事务,就新建一个事务。
- PROPAGATION_REQUIRES_NEW【propagation_requires_new】 – 新建事务,如果当前存在事务,把当前事务挂起。
- PROPAGATION_SUPPORTS【propagation_supports】– 支持当前事务,如果当前没有事务,就以非事务方式执行。
- PROPAGATION_MANDATORY 【propagation_mandatory】– 支持当前事务,如果当前没有事务,就抛出异常。
- PROPAGATION_NOT_SUPPORTED 【propagation_not_supported】– 以非事务方式执行操作,如果当前存在事务,就把当前事务挂起。
- PROPAGATION_NEVER 【propagation_never】– 以非事务方式执行,如果当前存在事务,则抛出异常。
- PROPAGATION_NESTED 【propagation_nested】– 如果当前存在事务,则在嵌套事务内执行。如果当前没有事务,则进行与PROPAGATION_REQUIRED类似的操作。
设置mysql隔离级别可参考查看并设置mysql隔离级别