一般动作
BroFWK 已经集成(默认禁用)了 Hibernate Envers 插件,以实现数据及其附件的版本管理,详细的使用说明与示例请参考 bropen.framework.plugins.envers.EnversRevisionEntity 的 API 文档 。
启用数据版本管理后,数据库中每个领域类会自动生成一张后缀为 “_aud” 的表,以存储各个版本的数据,同时 EnversRevisionEntity 中还会保存每个版本的创建人和时间。可以通过二次开发实现版本回滚、比较与展示等功能。
默认情况下,Envers插件是被禁用了,需要在工程的 Config.groovy 中配置:
此外,可以在Domain中编写事件方法 onEnversInsert、onEnversUpdate、onEnversDelete 中,如果返回 Boolean.FALSE,则不会记录新版本。
注:如果 hasMany 明细数据,某种条件下不希望创建版本,则主类和明细类的 onEnversInsert 必须都返回 false,否则还是会记录版本变化。