H2集成测试数据库不遵循与MySQL prod DB相同的命名

时间:2016-09-20 20:04:20

标签: java hibernate jpa spring-boot h2

我一直致力于编写一些使用内存(H2)数据库的集成测试,但我仍然坚持这个错误。

  

引起:org.h2.jdbc.JdbcSQLException:表" TESTTABLE"未找到; SQL语句:

问题是,在生产中,Hibernate正在将表名和列名从骆驼套管改为下划线。 (TestTable - > test_table)但是使用H2测试DB它只是大写(TestTable - > TESTTABLE)

这是我的测试配置类:

code > Optimize imports

}

我宁愿不必对所有内容进行注释,以便测试可以知道名称是什么。

有关解决这个问题的任何想法或建议吗?谢谢你的帮助!

1 个答案:

答案 0 :(得分:0)

这并没有完全回答我提出的具体问题,但我能够以更加简单的方式使其工作。如果你废弃我在原始问题中发布的所有内容,你只需要做几件事。

首先,您必须包含依赖项。我使用gradle所以我刚刚添加了这个:

testCompile("com.h2database:h2:1.4.191")

接下来,将这些注释添加到您的测试中:

@RunWith(SpringRunner.class)
@SpringBootTest
public class MultifamilyIntegrationTest {

    @Autowired
    protected TestService testService;

    @Test
    public void test() {
        testService.getUsers();
    }

}

最后,您必须在/ src / test / resources文件夹中包含data.sql和schema.sql文件。

  

schema.sql文件是所有架构的创建脚本   相关。

     

data.sql文件将插入所有需要的数据。