我开始制作一个简单的spring boot应用程序。
我的第一步是使用Spring JDBC支持以及默认的H2内存数据库。 对于示例数据,我在src / main / resources中具有schema.sql和data.sql。
因此,当spring启动时,它还会执行这两个脚本并填充H2数据库,我可以通过H2控制台访问该数据库。
一切正常,我可以测试控制器返回的正确数据。
然后我通过添加以下内容添加了JPA支持:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
但是从那以后,这两个脚本(schema.sql,data.sql)就不再执行了。
JPA依赖是否会引起这种情况?使其起作用的解决方法是什么?
答案 0 :(得分:1)
由于您使用的是spring-boot-starter-data-jpa
,因此可以在application.properties
中设置以下属性,如果您处于休眠状态并且导致了问题(很可能是这样),它应该可以工作:
spring.jpa.hibernate.ddl-auto = none
在基于JPA的应用程序中,您可以选择让Hibernate创建架构 或使用schema.sql,但您不能两者都做。确保禁用 如果使用schema.sql,则为spring.jpa.hibernate.ddl-auto。
schema.sql是一个基于Spring的初始化过程,因此在类路径中具有休眠状态将与此冲突。因此,您可以尝试禁用这样的休眠自动配置。 官方doc。
如果不是这种情况,请共享整个pom文件。