我正在寻找扩展Grails CRUD生成功能的最佳方法.它应该是一个Grails插件,它为以下功能提供了额外的生成器:
对于历史记录,应保存对扩展域实例的任何更改(作为其版本)
只有一个版本的实例可以处于活动状态
用户应该能够激活不是由他创建的实例版本(当前活动的实例应该被停用)(4眼原则)
差异视图很不错
Grails开箱即用的脚本应该尽可能小.到目前为止,我确定了3个实施设计策略:
具有相同模式的镜像表,其中包含版本(将域/表的数量加倍).激活的版本将复制到本机域,反之亦然.
在域类中使用鉴别器.一些新列将添加到域中(如state [active,notActive],lastUpdatedBy,lastUpdatedDate ...)
(De-)使用BLOB将实例序列化到特殊域(例如,domain.properties为JSON)
任何解决方案都有利有弊.实施它的最佳方法是什么?也许有一种更简单的方法.