春季JPA + H2问题

时间:2019-06-24 03:34:47

标签: spring-boot jpa h2

我开始制作一个简单的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依赖是否会引起这种情况?使其起作用的解决方法是什么?

1 个答案:

答案 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文件。