我的数据层中有几个实体存储在特定的模式中。例如:
@Entity
@Table(name = "FOO", schema = "DUMMY")
public class Foo {}
我正在尝试为数据层的集成测试设置H2嵌入式数据库。我使用@DataJpaTest
注解来自动配置H2嵌入式数据库。但是,在初始化数据库时,表的创建失败,因为未创建模式DUMMY
。
有什么想法可以在测试用例中创建表之前创建模式吗?
我尝试使用@Sql(statements="CREATE SCHEMA IF NOT EXISTS DUMMY")
,但没有成功。
此外,我还尝试在test.properties
文件中设置spring.datasource.url = jdbc:h2:mem:test;INIT=CREATE SCHEMA IF NOT EXISTS DUMMY
,并且与TestPropertySource("classpath:test.properties")
一起使用,但也无效。
schema.sql
放在src/test/resources
下,这样它就只会应用于测试。 - StasKolodyuk