@Transactional注解是用来配置事务操作的注解,可以作用于类和方法上,其中readOnly为其只读注解,我在查阅资料得知其具有以下功能
我的理解是开启只读属性后(readOnly=true),对于增删改就不具有事务属性了,所以对此做一个验证如下:
方式一:不设置任何注解
在不设置任何注解的情况下,在插入后抛出异常
系统抛出异常
但是数据库仍然增加了数据,说明没有事务回滚(废话,没有配置当然不会回滚!)
方式二:配置@Transactional注解
执行同样的插入语句
数据库没有发生变化,说明注解生效
方式三:配置@Transactional(readOnly=true)注解
还是执行同样的插入语句,数据库依然没有变化,说明事务仍然有效
总结:从试验的结果来看,只要配置了@Transactional注解后就会启动事务控制,readOnly的属性值好像并没有看出来有什么作用