我正在构建一个spring引导应用程序。在src/main/resources中,我有一个schema.sql文件,它将在spring之前自动执行,以创建我的数据库模式。最近,我用Hibernate envers添加了审计。当然,我不想在我的_AUD中手动添加schema.sql表。
有了像h2这样的嵌入式数据库,我就可以简单地用application.properties hibernate.hbm2ddl.auto=create-drop编写,这样就可以自动生成表了。在切换到“真实”数据库后,该属性已失去其效果。此外,这一特性只是方便,不推荐生产。
因此,正确的解决方案是让hibernate自动创建审计表。但我该怎么做呢?我只想自动生成审核表的架构?
发布于 2018-01-09 14:17:23
不幸的是,当涉及到Hibernate 5的模式管理功能时,源之间并没有分离;它只是一个全部或没有切换。
您可以研究如何使用Hibernate工具模式生成Ant任务来生成模式创建脚本,然后手动修改它以满足您的需要。如果您无法找到一种方法将其插入引导程序中以进行第一次执行,则甚至可能需要手动执行它。
好消息是Hibernate 6将引入一种方法,使您能够完全按照您的要求来做。您可以允许Hibernate ORM的实体被指定为validate,而审计表实体可以指定为update或任何其他设置。Hibernate 6模式管理工具将能够区分这些模式对象的不同来源,并以更独立的方式管理它们。
但是在Hibernate 6之前,您将不得不依赖于工具任务来脱机生成模式,并且可能会根据您的需要对这些脚本进行一些手动操作,以便包含这些脚本。
https://stackoverflow.com/questions/48163554
复制相似问题