Spring boot @Transactional не откатывается - PullRequest
0 голосов
/ 29 мая 2018

Я использую загрузочное приложение Spring, на котором я пытаюсь добиться управления транзакциями.Но Spring не выполняет откат данных, сохраненных в том же методе.

База кода: https://github.com/vinothr/spring-boot-transactional-example

Может ли кто-нибудь мне помочь?

Это мой класс репозитория дляОбъект «Тест».

@Repository
public interface TestRepository extends CrudRepository<com.example.demo.Test, Long> {

}

Я создал одну конечную точку, которая использовалась для сохранения данных в объект «Тест».После сохранения я выдал RunTimeException, но он не откатывает сохраненное значение

@GetMapping("/test")
@Transactional
public void create() {
    System.out.println("test");
    final Test p = createTest();
    testRepository.save(p);

    final Test p1 = createTest();
    testRepository.save(p1);
    throw new RuntimeException();
}

Ответы [ 2 ]

0 голосов
/ 30 мая 2018

Он работает нормально после того, как я перешел на движок InnoDB, потому что я использовал движок MyISAM, который не поддерживает транзакции.

ALTER TABLE my_table ENGINE = InnoDB;
0 голосов
/ 29 мая 2018

Попробуйте указать @Transactional(rollbackFor = RuntimeException.class)

...