【问题标题】:JPA/Hibernate automatically create/validate database functionsJPA/Hibernate 自动创建/验证数据库函数
【发布时间】:2022-08-12 01:08:26
【问题描述】:

当我使用 spring.jpa.hibernate.ddl-auto=create 时,有什么方法可以使用 jpa/hibernate 自动创建数据库函数?

我有许多自定义函数(在项目的单独脚本文件中定义)我在我的存储库中的自定义 @Query 上使用,但这些函数需要手动创建

您可能会想“有什么问题只是在创建数据库后运行脚本”,但这必须针对系统的每个环境进行:dev、test、prod ......而且在内存数据库中使用自动测试也是不可能的(因为当我点击 run junit 创建数据库时,hibernate 在数据库中创建表,但没有人创建函数,因此存储库无法正常工作)

那么如何使用 jpa/hibernate 自动创建自定义数据库函数

  • 您是否尝试过任何迁移框架 Flyway/Liquibase?而不是使用这个 spring.jpa.hibernate.ddl-auto=create 你可以创建脚本并放在 Migration 目录中,Flyway/Liquibase 应该能够在任何环境中创建你的函数,自定义类型

标签: java spring hibernate jpa


【解决方案1】:

您可以在类路径中添加import.sql 文件。 Hibernate 将创建模式,然后在选定的数据库上运行它。

You can find more details in the documentation

请注意,Hibernate 中模式生成的主要目的是原型设计或测试。

【讨论】:

    猜你喜欢
    • 2014-01-30
    • 2021-10-21
    • 2016-11-12
    • 2011-05-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多