Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Spring boot JPA不会在单个测试范围内保持更改_Java_Spring_Hibernate_Spring Boot_Jpa - Fatal编程技术网

Java Spring boot JPA不会在单个测试范围内保持更改

Java Spring boot JPA不会在单个测试范围内保持更改,java,spring,hibernate,spring-boot,jpa,Java,Spring,Hibernate,Spring Boot,Jpa,我使用的是Spring Boot 2.0.1和Spring Boot starter数据jpa 在数据库中,我有3条记录。我进行这样的测试: @Test public void shouldDeleteByName() { service.deleteOneByName("SOME NAME"); // Out of 3 records 1 was deleted List<Customer> customers = service.selectAll();

我使用的是Spring Boot 2.0.1和
Spring Boot starter数据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
}
@测试
public void shouldDeleteByName(){
service.deleteOneByName(“SOME NAME”);//删除了3条记录中的1条
列出客户=服务。选择全部();
assertThat(customers).hasSize(2);//失败
assertThat(customers).extracting(“name”).doesNotContain(“SOME name”);//失败
}
没有错误,我看到事务已提交

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


我做错了什么?

看来它解决了我的问题:

  • 我将我的测试数据库配置transactionManager从
    DataSourceTransactionManager
    更改为
    JpaTransactionManager
    ,示例发布在末尾

  • 我将我的服务注释为@Transactional

  • 我将我的测试注释为@Transactional(没有这个功能,但是更改是永久的)。测试第一次执行,但第二次失败

  • 第一步工作的代码

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

    在调用包含3个客户实体的删除列表之前,service.selectAll()返回什么。