我如何在没有事务的情况下使用Spring-Jpa中的JpaSpecificationExecutor

时间:2019-03-28 09:29:15

标签: mysql spring-data-jpa spring-data spring-transactions

enter image description here当我使用JpaSpecificationExecutor进行findAll时,我发现了它 自动添加事务,使用

启动sql

设置自动提交= 0;

我不想要它。

我测试JpaRepository,执行相同的select sql,但没有 设置自动提交= 0;

但JpaSpecificationExecutor具有。

然后我把它弄破了,发现有一个代理可以添加事务,但是我不知道如何禁用它。

我确实将defaultAutoCommit设置为true

我也设置了

datasource:

  tomcat:

    default-auto-commit: true

  dbcp2:

    default-auto-commit: true

连接池已经是defaultAutoCommit = true

没有帮助

所以我怪JpaSpecificationExecutor

@Repository
public interface GameRepository extends JpaRepository<GameEntity, Integer>, JpaSpecificationExecutor<GameEntity> {
    List<GameEntity> findByName(String name);
}
public List<GameEntity> search(HttpServletRequest request) {
        return mGameRepository.findAll(searchAction(request), new Sort(Sort.Direction.DESC, "id"));
    }

break point screen cut

1 个答案:

答案 0 :(得分:0)

结果表明,所有CRUD方法(CrudRepository方法)默认情况下都标记为事务性的。

但是我如何取消标记呢?