繁体   English   中英

Spring Boot JPA不会在单个测试范围内保留更改

[英]Spring boot JPA does not persist changes in single test scope

我正在将Spring Boot 2.0.1与spring-boot-starter-data-jpa

在数据库中,我有3条记录。 我执行这样的测试:

@Test
public void shouldDeleteByName() {
    service.deleteOneByName("SOME NAME"); // Out of 3 records 1 was deleted
    List<Customer> customers = service.selectAll();
    assertThat(customers).hasSize(2); // FAILS
assertThat(customers).extracting("name").doesNotContain("SOME NAME"); // FAILS
}

没有错误,我看到事务已提交。

似乎在selectAll之前,事务已还原,或者selectAll尚未看到更改。

我做错了什么?

好吧,看来它解决了我的问题:

  1. 我将测试数据库配置transactionManager从DataSourceTransactionManager更改为JpaTransactionManager ,示例已在最后发布。

  2. 我将服务注释为@Transactional。

  3. 我将测试注释为@Transactional(此方法无效,但更改是永久的)。 测试第一次执行,但第二次失败。

规范第1工序加工ONE:

@Bean
public PlatformTransactionManager transactionManager(EntityManagerFactory entityManagerFactory) {
    return new JpaTransactionManager(entityManagerFactory);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM