【问题标题】:spring transaction management : Read uncommitted data in same transactionspring事务管理:在同一事务中读取未提交的数据
【发布时间】:2019-03-12 03:29:41
【问题描述】:

如何在同一事务中读取未提交的数据。我正在使用spring jdbc。

示例代码:

 @Transactional
    public Resource update(){
    dao.update();
    Resource resource = dao.getById("1");
    return resource;
    }

这是返回旧数据,因为事务尚未提交。我想要类似于 JPA 中的 entityManager.merge() 的东西。我读了一些关于事务隔离的帖子,但他们都在谈论两个不同的事务。我的问题是在同一个事务中如何读取未提交的数据?

【问题讨论】:

  • 您好,我也遇到了同样的问题,请问有解决办法吗?请
  • 您好,您找到解决方案了吗,我也需要这个,请...

标签: spring spring-jdbc


【解决方案1】:

可以配置事务隔离级别

@Transactional(isolation=Isolation.READ_UNCOMMITTED)

在您的情况下,您不仅有一笔交易。看起来您有一笔交易要更新,一笔交易要保存。 如果您使用的是 spring data jpa,则每个 CRUD 操作都在不同的事务中执行。

【讨论】:

  • 嗨,我的服务方法只有@Transactional 注释,dao 上没有。另外我认为在我的服务方法上标记@Transactional(isolation=Isolation.READ_UNCOMMITTED) 将打开其他事务读取我不想要的未提交数据的方法。我的问题是可以在同一个事务中读取未提交的数据。我在这里错过了什么吗?
猜你喜欢
  • 1970-01-01
  • 2018-01-15
  • 1970-01-01
  • 1970-01-01
  • 2011-04-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多