使用jpa注释在一个事务中保存数据并在另一个事务中获取数据

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用jpa注释在一个事务中保存数据并在另一个事务中获取数据相关的知识,希望对你有一定的参考价值。

我正在使用JPA处理Spring MVC,其中m使用基于注释的结构。我必须在数据库中上传excel文件,其中我需要使用更新列方法更新名为status的列,然后将数据保存在表中,然后需要从具有状态的表中获取所有记录(已更新)。在这种情况下一切正常,除非我从数据库中获取记录,它获取旧数据,它不从表中获取更新记录。我在方法中使用事务注释。

我尝试过使用@transaction(propagation = propagation.required_new),但它也会获取旧数据。

任何人都可以建议我什么?

@Transactional
    @Override
    public void updateStatus() {
        lotAcceptanceRateRepository.updateStatus();
    }

@Transactional
    @Override
    public void saveList(List<LotAcceptanceRate> lotAcceptanceRateList) {
        lotAcceptanceRateRepository.save(lotAcceptanceRateList);
    }

@Transactional(propagation = Propagation.REQUIRES_NEW)
    @Override
    public List<LotAcceptanceRate> getAllRecordsFromTable() {
        return lotAcceptanceRateRepository.OrderByStatusAsc();
    }

这些都是我用来运行事务的方法。

答案

尝试使用

 @Modifying
 @Transactional

保存和更新时

以上是关于使用jpa注释在一个事务中保存数据并在另一个事务中获取数据的主要内容,如果未能解决你的问题,请参考以下文章

Spring Data Jpa问题在一个事务中保存父,子和childofchild

Spring JPA无法提交jdbc事务的解决办法

Spring JPA事务通过多种方法

无法使用 Spring Data JPA / Hibernate 在事务中两次保存具有不可变集合的实体

如何在单个事务中将图像上传到 Firebase 存储并在数据库中保存参考?

jpql sql在同一个事务中