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

如何使用现代的Spring Boot+Data JPA和Hibernate设置生成ddl创建脚本?

晁文斌
2023-03-14
spring.datasource.url=jdbc:mysql://localhost/dbname
spring.datasource.username=X
spring.datasource.password=X
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.jpa.hibernate.naming_strategy=my.package.CustomNamingStrategy
    null
    null

库版本:

   hibernate          : 4.3.11.FINAL
   spring framework   : 4.2.5.RELEASE
   spring-boot        : 1.3.3.RELEASE
   spring-data-jpa    : 1.10.1.RELEASE   // for  querydsl 4 support
   spring-data-commons: 1.12.1.RELEASE   // for  querydsl 4 support

(使用gradle,而不是maven)

共有1个答案

刁丰羽
2023-03-14

啊,就在我发了这个问题之后,一段spring数据文档引起了我的注意:

73.5配置JPA属性此外,在创建本地EntityManagerFactory时,spring.JPA.properties.*中的所有属性都将作为普通JPA属性(去掉前缀)传递。

因此,为了回答我自己的问题:在javax.persistence属性前缀spring.jpa.properties:

spring.jpa.properties.javax.persistence.schema-generation.create-source=metadata
spring.jpa.properties.javax.persistence.schema-generation.scripts.action=create
spring.jpa.properties.javax.persistence.schema-generation.scripts.create-target=create.sql
 类似资料:
  • 问题内容: 我有一个包含CREATE TABLE命令的sql / ddl脚本。 我使用hibernate模式,并且希望hibernate模式执行此脚本以创建数据库结构。 这个怎么做? 问题答案: 如果使用Spring,则可以使用其JDBC实用程序填充数据库:

  • 问题内容: 我们当前正在使用Hibernate 3,并且使用Hibernate Tools来为数据库模式生成SQL脚本。 我们使用以下Ant任务 我们想切换到Hibernate 4:如果没有Hibernate工具,如何实现类似的目标? 问题答案: 您可以直接使用SchemaExport类生成DDL脚本: 对于Hibernate 4: Hibernate 5的更新:

  • 问题内容: 摘要 我正在尝试运行Java Web应用程序JPA 2.0示例。该示例应用程序被编写为使用JPA提供程序在中运行。我想将其转换到运行与作为JPA提供者,但我不能任何详细的教程起床与运行。 问题 我在转换为而不是时遇到了麻烦。更具体地说,给定的未指定: 类。这些必要吗? 所需的JPA提供程序。容器会默认为某种东西吗? JDBC驱动程序。如何指定“内存中”数据库(仅用于初始测试)? 也:

  • 但我得到以下错误: 已迁移到新包的该类: 然而,我没有找到在MAVEN Build中继续生成DDL创建脚本的明确方法。 那又怎样?它不是应该支持的一个主要特性吗?怎么做?

  • 问题内容: 我有一个JPA / Hibernate数据模型,正在使用Hibernate hbm2ddl工具生成数据库DDL。我在数据库中有一些应该是CHAR的字符串,有些可能是VARCHAR。我想最小化DDL的手动编辑(我意识到有些事情必须发生)。 有人知道我应该怎么做吗?我意识到我可以通过被破解的方言来制作所有Strings VARCHARS或CHARS,但这并不是数据库中总是合适的方法。 我希

  • 如何配置SpringBoot、SpringDataJPA、SpringTest和Hibernate来为保存和检索对象的单元测试创建、使用和删除给定的PostgreSQL模式? 在测试开始之前,Spring测试应该为测试创建数据库模式。每个测试方法都应该在单个事务中运行,并且在它完成后,测试方法应该回滚所有数据库操作。在所有测试方法结束时,测试应该删除模式。 在目前的形式中,传递,但在模式中创建表,