@Transactional的readOnly、timeout

1、@Transactional的readOnly

在使用@Transactional注解的时候,有一个属性是readOnly,默认值是false

readOnly的意思就是当前的方法是只读的,也就是说当前的方法中没有需要处理事务(insert,update,delete的操作。则可以加上readOnly=true

使用它的好处是Spring会把你优化这方法,使用了readOnly=true,也就是使用了一个只读的connection。效率会高很多

例如:如下方法,userAdd肯定用到了insert操作。此时加上readOnly=true的话则会报错,插入不成功。

1
2
3
4
@Transactional (readOnly= true )
public void userAdd(User user) {
     userDao.userAdd(user);
}

readOnly的使用场景:

1、只有查询操作的方法上(查询量比较大)

2、确保当前方法不会出现insert,update,delete情况时,可以使用readOnly=true

3、防止当前方法会出现insert,update,delete

2、@Transactional的timeout

事务的超时时间:Transaction时间太长的话,将它停止掉。默认-1





  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
@Transactional注解是Spring框架中用于声明式事务管理的注解。通过在方法或类上添加@Transactional注解,可以将方法或类标记为需要进行事务管理的对象。 以下是使用@Transactional注解的几种常见方式: 1. 在方法上使用@Transactional注解: ```java @Transactional public void doSomething() { // 业务逻辑 } ``` 2. 在类上使用@Transactional注解: ```java @Transactional public class UserService { // 业务逻辑 } ``` 3. 在方法上使用@Transactional注解,并指定事务的传播行为: ```java @Transactional(propagation = Propagation.REQUIRED) public void doSomething() { // 业务逻辑 } ``` 4. 在方法上使用@Transactional注解,并指定事务的隔离级别: ```java @Transactional(isolation = Isolation.READ_COMMITTED) public void doSomething() { // 业务逻辑 } ``` 5. 在方法上使用@Transactional注解,并指定事务的回滚规则: ```java @Transactional(rollbackFor = Exception.class) public void doSomething() throws Exception { // 业务逻辑 } ``` 6. 在方法上使用@Transactional注解,并指定事务的超时时间: ```java @Transactional(timeout = 10) public void doSomething() { // 业务逻辑 } ``` 7. 在方法上使用@Transactional注解,并指定事务的只读属性: ```java @Transactional(readOnly = true) public void doSomething() { // 业务逻辑 } ``` 8. 在方法上使用@Transactional注解,并指定事务的异常回滚规则: ```java @Transactional(noRollbackFor = RuntimeException.class) public void doSomething() { // 业务逻辑 } ``` 以上是一些常见的@Transactional注解的使用方式,根据具体的业务需求和事务管理的要求,可以选择适合的方式来使用@Transactional注解。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值