spring - 如何使用 Spring Hibernate 在不使用 spring.jpa.hibernate.ddl-auto 的情况下自动创建审计表
问题描述
当我保存到表时,我需要自动创建审计表。我补充说"org.hibernate:hibernate-envers:5.4.2"
。最后到我的 gradle 文件并使用 @Audited 注释实体。
我不能"spring.jpa.hibernate.ddl-auto"
在我的应用程序文件中使用,我需要另一种方法来自动创建表。就像编写 gradle 任务或 Java 代码一样。
我如何在数据库中自动创建这些表。
解决方案
如果您没有将 hibernate.ddl-auto 设置为 true,则无法自动生成表。正如@Uwe Allner 建议的那样,您应该使用flyway/liquibase。它们很容易与 Spring 集成。如果使用它们,每次启动应用程序时,需要执行的每个 sql 脚本都会执行。
您将通过这些源代码控制数据库创建您的审计表。您将在您的 xml 更改日志文件(liquibase 版本)中有类似的内容,以便审核您的表“table1”:
<changeSet id="3" author="user9353766">
<createTable tableName="audit_table1">
<column name="ID" type="bigint">
<constraints primaryKey="true" nullable="false"/>
</column>
<column name="PROPERTY1" type="bigint">
<constraints nullable="false"/>
</column>
<column name="REV" type="bigint"></column>
<column name="REVTYPE" type="int"></column>
</createTable>
</changeSet>
推荐阅读
- swiftui - 如何在 Swift UI 中使用导航链接时从右导航到左
- ssl - 如何将 SSL 恢复到它已停止工作的站点?
- apache - apache重写 - 将url重写到子文件夹但如果某个段在url中则nof
- java - 如何在android中制作水平可拉伸的背景
- typescript - TypeScript 按属性对对象数组进行排序
- python - 在 selenium python 中读取和测试 CSV 文件
- python - OSError: [Errno 24] 打开的文件太多:
- python - 如何检查从 Min 到 Max 的范围是否与 python 中的现有范围列表重叠
- javascript - Barba.js 转换在真实服务器上不起作用
- ubuntu - 如何将背景的输出重定向到文件