当前位置: 首页 > 知识库问答 >
问题:

如何将Spring Data JPA正确配置到Spring Boot 2.X应用程序的apprament.properties配置文件中?

洪哲彦
2023-03-14

我发现在尝试将Spring Data JPA配置到我的Spring Boot项目中时会遇到以下困难。

我有以下与应用程序.属性文件相关的问题。这是我的原始应用程序.属性html" target="_blank">文件内容:

spring:
  application:
    name: Spring Boot Excel API
  datasource:
    driverClassName: org.mariadb.jdbc.Driver
    url: jdbc:mariadb://localhost:3306/SOC_Dashboard
    username: admin
    password: password
    timeBetweenEvictionRunsMillis: 1000
    testWhileIdle: true
    validationQuery: SELECT 1

在其中,我为我的项目配置了数据库连接(从现在开始,我使用JdbcTemplate与我的数据库进行交互,现在我用Spring Data JPA替换它)。

我不太喜欢Spring Boot,但在我看来,有两种方法可以将配置设置到我的application.properties文件中:一种是在我的配置中完成的(使用类似树结构的东西),另一种使用“flast”结构。

在网上搜索时,我只找到了JPA的这种“扁平”配置:

spring.jpa.hibernate.ddl-auto=none

这在我的情况下不起作用。将它放入我的application.properties文件中,由于它使用另一种树样式,我得到了一个语法错误。

所以我试图以这种方式更改我的原始文件:

spring:
  application:
    name: Spring Boot Excel API
  datasource:
    driverClassName: org.mariadb.jdbc.Driver
    url: jdbc:mariadb://localhost:3306/SOC_Dashboard
    username: admin
    password: password
    timeBetweenEvictionRunsMillis: 1000
    testWhileIdle: true
    validationQuery: SELECT 1

  jpa:
    hibernate: 
      ddl-auto: none

这是正确的方法吗?

另一个疑问与ddl-auto配置有关。我的开发是数据库驱动的。我设计的数据库表和JPA实体必须映射这些表。我不想从我的实体开始创建\修改表。它是正确的配置吗?

共有1个答案

伏业
2023-03-14

要回答您的第一个问题,是的。这是在 YAML 文件中配置 spring.jpa.hibernate.ddl-auto 配置的正确方法。以及您以 YAML 格式提到的属性文件。因此,文件名应为 application.yml。在spring boot中,spring-boot-starter-web依赖项将自动包含snakeyaml依赖项以读取YAML文件。

对于第二个问题,如果您不想自动创建表,或者您可以简单地避免配置,那么对于ddl-auto,您可以不提。请参考:spring.jpa.hibernate.ddl属性在Spring中是如何工作的?

 类似资料:
  • 我尝试了一个显示其他响应的测试用例,我将一步一步地解释它: > 我在我的设备上安装了MDM配置文件,这提示我安装了一个应用程序,并且我成功地安装了它。应用程序已进入“应用程序中的配置文件”部分。 然后我手动删除了应用程序。

  • 问题内容: 好的,所以我不想在这里展开一场圣战,但是我们正在努力巩固处理应用程序配置文件的方式,我们正在努力决定采用哪种最佳方法。目前,我们分发的每个应用程序都在使用其自己的临时配置文件,无论是属性文件(ini样式),XML还是JSON(目前仅在内部使用!)。 目前,我们的大多数代码是Java,因此我们一直在研究Apache Commons Config ,但是我们发现它非常冗长。我们还研究了XM

  • 问题内容: 我有一个使用JPA持久性的jersey-2 / hk2应用程序。将在这样的约束启动 工厂级的 这可行,但是对于每个请求,我都会在日志中收到有关已注册EntityManager的警告: 我究竟做错了什么?在jersey-2 / hk2应用程序中初始化EntityManager的正确方法是什么? 问题答案: 一种选择是不是创建一个新的(这是在请求范围内),您可以创建为一个单独的工厂,然后就

  • 我有一个使用JPA持久性的jersey-2/hk2应用程序。启动时绑定如下所示

  • 问题内容: 我正在用Eclipse编写Web应用程序。 我正在尝试使用ServiceLoader类加载一些插件。 ServiceLoader的文档说我需要在META-INF / services中放置一个文件。 我已经将该文件放置在WebContent / META-INF / service文件夹中,但是当我通过Eclipse运行JUnit测试时,找不到任何插件。 这是文件的正确位置吗? 另外,

  • 我试图完成本教程,但我认为在配置网页时遇到了一些问题。我正在一步一步地制作教程,但它不起作用。。 错误]无法执行目标com。github。eirslett:frontend maven插件:1.10.3:project shop上的webpack(webpack生成):无法运行任务:“webpack”。js'失败了。组织。阿帕奇。平民执行官。ExecuteException:进程已退出,但出现错误