声明式事务

可以通过一个注解,很方便的实现事务管理

事务监听

在Service层的方法上 加上 Traction注解即可:

  1. @Traction(level = TractionLevel.READ_COMMITTED)
  2. public int insert(){
  3. return 1;
  4. }

加了事务监听的方法,必须把异常抛出去,不可以在方法内部处理,不然监听器无法知道是否失败,会默认为执行成功

事务隔离级别:

  • READ_COMMITTED
  • READ_UNCOMMITTED
  • REPEATABLE_READ
  • SERIALIZABLE

READ_COMMITTED: 仅允许读取已提交的数据,即不能读脏,但是可能发生不可重读和幻读。

READ_UNCOMMITTED 允许读脏,不可重读,幻读。

REPEATABLE_READ 不可读脏,保证同一事务重复读取相同数据,但是可能发生幻读。

SERIALIZABLE 串行事务,保证不读脏,可重复读,不可幻读,事务隔离级别最高。

设置方法: 在Traction注解内传入参数

  1. @Traction(level = TractionLevel.READ_COMMITTED)