我需要自动创建审核表。我添加了"org.hibernate:hibernate-envers:5.4.2"
。最终我的gradle文件并使用@Audited对实体进行注释。
我不能在应用程序文件中使用"spring.jpa.hibernate.ddl-auto"
,我需要另一种自动创建表的方法。就像编写Gradle任务或Java代码一样。
我如何在DB中自动创建这些表。
如果没有Hibernate.ddl-auto设置为true,则无法自动生成表。正如@uwe Allner所建议的那样,您应该使用Flyway/Liquibase。它们与春季相当容易地集成。如果您使用它们,则每次启动应用程序时,您需要执行的每个SQL脚本都将是。
您将通过这些源控制数据库创建审核表。您将在XML ChangElog文件(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>
虽然飞行和液志可能是跨环境处理迁移数据库三角洲的最常用和已知方法,但它们并不是唯一的选择,请参见Hibernate工具。
Hibernate Tools库允许您使用构建时间架构生成并将该模式增量写入一个文件,然后将其用作构建或部署的一部分。