我正在使用Sping Boot 2.1.3和H2内存数据库进行测试。当我运行我的测试时,即使我指定了以下属性,模式也会生成。
spring.jpa.generate-ddl=false
字符串似乎是因为Sping Boot 在使用H2时默认了以下属性
spring.jpa.hibernate.ddl-auto=create-drop
型优先于spring.jpa.generate-ddl=false这是个窃听器吗?
1tu0hz3e1#
此行为在Sping Boot 参考文档的创建和删除JPA数据库部分中描述如下:默认情况下,DDL执行(或验证)被推迟到ApplicationContext启动之后。还有一个spring.jpa.generate-ddl标志,但如果Hibernate自动配置处于活动状态,则不使用它,因为ddl-auto设置更细粒度。由于spring.jpa.hibernate.ddl-auto属性是在使用Hibernate时默认设置的,因此spring.jpa.generate-ddl属性被忽略,至少对于H2内存数据库是这样
ApplicationContext
spring.jpa.generate-ddl
ddl-auto
spring.jpa.hibernate.ddl-auto
1条答案
按热度按时间1tu0hz3e1#
此行为在Sping Boot 参考文档的创建和删除JPA数据库部分中描述如下:
默认情况下,DDL执行(或验证)被推迟到
ApplicationContext
启动之后。还有一个spring.jpa.generate-ddl
标志,但如果Hibernate自动配置处于活动状态,则不使用它,因为ddl-auto
设置更细粒度。由于
spring.jpa.hibernate.ddl-auto
属性是在使用Hibernate时默认设置的,因此spring.jpa.generate-ddl
属性被忽略,至少对于H2内存数据库是这样