Как я могу использовать JpaSpecificationExecutor из Spring-Jpa без транзакции - PullRequest
0 голосов
/ 28 марта 2019

введите описание изображения здесь Когда я использовал JpaSpecificationExecutor, выполняя findAll, я обнаружил, что он автоматически добавляет транзакцию, начиная с sql

set autocommit = 0;

И я надеваюне хочу.

Я тестирую JpaRepository, делая то же самое select sql, и он не идет с set autocommit = 0;

, но JpaSpecificationExecutor имеет.

ТогдаЯ ломаю точку и обнаруживаю, что ПРОКСИ делает это, добавляя транзакцию, но я не знаю, как это отключить.

Я устанавливаю defaultAutoCommit: true

И я также устанавливаю

datasource:

  tomcat:

    default-auto-commit: true

  dbcp2:

    default-auto-commit: true

пул соединений уже используется по умолчаниюAutoCommit = 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"));
    }

срез точки останова

1 Ответ

0 голосов
/ 30 марта 2019

Оказывается, все методы CRUD (методы CrudRepository) по умолчанию помечены как транзакционные.

Но как я могу снять его?

...