【问题标题】:Spring JPA + H2 issueSpring JPA + H2 问题
【发布时间】:2019-11-05 20:18:07
【问题描述】:

我开始制作一个简单的 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 依赖会导致它吗?什么是使它起作用的解决方法?

【问题讨论】:

    标签: spring-boot jpa h2


    【解决方案1】:

    由于您使用的是spring-boot-starter-data-jpa,因此您可以在application.properties 中设置以下属性,如果您有休眠状态并且这应该会导致问题(很可能):

    spring.jpa.hibernate.ddl-auto = none
    

    在基于 JPA 的应用程序中,您可以选择让 Hibernate 创建模式 或使用 schema.sql,但你不能两者都做。确保禁用 spring.jpa.hibernate.ddl-auto 如果你使用 schema.sql。

    schema.sql 是一个基于 spring 的初始化过程,在 classpath 中使用 hibernate 会与此冲突。因此,您可以尝试像这样禁用 hibernate 自动配置。 官方doc

    如果不是这样,请分享整个 pom 文件。

    【讨论】:

      猜你喜欢
      • 2020-01-04
      • 1970-01-01
      • 1970-01-01
      • 2015-11-24
      • 1970-01-01
      • 1970-01-01
      • 2021-03-31
      • 1970-01-01
      • 2014-08-07
      相关资源
      最近更新 更多