为什么Java代码行不在一个事务中出现在mysql日志的一个事务中

时间:2019-01-29 14:55:35

标签: java mysql spring hibernate jpa

我正在基于Spring Boot / JPA的项目上工作,我想将查询与修改分开。结果,首先在mysql中查询所有参数,然后在一个事务中进行修改,而查询不在其中,并通过事务传递给Modify方法。奇怪的是,在mysql日志中,所有查询和修改行都出现在一个 set autocommit = 0 commit 范围内,这意味着它们在一个事务中,而不是我想要的。

在这个项目中,我使用Spring Data JPA加载和保存数据,并正确注入了带有事务的修改方法。

  public void method(some params) {

    some params = some query get some result
    modifyClassObj.modify(some params)

  }
  @Transactional
  public void modify(some params) {

    some update operations
    xxxrepository.save(params)

  }
  SET autocommit=0;

  some sql from query 
  some sql from update

  commit;

我知道在mysql日志和java代码之间进行比较有点奇怪。主要思想是限制事务范围以使代码更好地运行。

0 个答案:

没有答案