spring事务
Spring事务属性的种类:
1)传播行为:定义了被调用方法的事务边界。
2)隔离级别:在操作数据时可能带来3个副作用,分别是脏读、不可重复读、幻读。SQL和Spring都分别提供了几种隔离级别来避免副作用的产生
3)只读:如果在一个事务中所有关于数据库的操作都是只读的,也就是说,这些操作只读取数据库中的数据,而并不更新数据,那么应将事务设为只读模式( READ_ONLY_MARKER ) , 这样更有利于数据库进行优化 。
4)事务超时:如果一个事务长时间运行,这时为了尽量避免浪费系统资源,应为这个事务设置一个有效时间,使其等待数秒后自动回滚。
Spring的API设计基本上根据英文翻译就能知道作用:Required:必须的。说明必须要有事务,没有就新建事务。supports:支持。说明仅仅是支持事务,没有事务就非事务方式执行。mandatory:强制的。说明一定要有事务,没有事务就抛出异常。required_new:必须新建事务。如果当前存在事务就挂起。not_supported:不支持事务,如果存在事务就挂起。never:绝不有事务。如果存在事务就抛出异常。