【发布时间】: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 应该能够在任何环境中创建你的函数,自定义类型