![](/img/trans.png)
[英]Spring boot test - EntityManager does not persist when using 2 databases
[英]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
尚未看到更改。
我做错了什么?
好吧,看来它解决了我的问题:
我将测试数据库配置transactionManager从DataSourceTransactionManager
更改为JpaTransactionManager
,示例已在最后发布。
我将服务注释为@Transactional。
我将测试注释为@Transactional(此方法无效,但更改是永久的)。 测试第一次执行,但第二次失败。
规范第1工序加工ONE:
@Bean
public PlatformTransactionManager transactionManager(EntityManagerFactory entityManagerFactory) {
return new JpaTransactionManager(entityManagerFactory);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.