@Transaction注解的readOnly属性

    @Transactional注解是用来配置事务操作的注解,可以作用于类和方法上,其中readOnly为其只读注解,我在查阅资料得知其具有以下功能

    我的理解是开启只读属性后(readOnly=true),对于增删改就不具有事务属性了,所以对此做一个验证如下:

方式一:不设置任何注解

在不设置任何注解的情况下,在插入后抛出异常

系统抛出异常

但是数据库仍然增加了数据,说明没有事务回滚(废话,没有配置当然不会回滚!)

方式二:配置@Transactional注解


执行同样的插入语句


数据库没有发生变化,说明注解生效


方式三:配置@Transactional(readOnly=true)注解


还是执行同样的插入语句,数据库依然没有变化,说明事务仍然有效


总结:从试验的结果来看,只要配置了@Transactional注解后就会启动事务控制,readOnly的属性值好像并没有看出来有什么作用

猜你喜欢

转载自blog.csdn.net/ht_kasi/article/details/80301796