一尘不染

如何在Grails中管理对象修订?

hibernate

我需要在 grails
Web应用程序中为文章实现一个修订系统。在搜索grails论坛,stackoverflow,grails插件和谷歌搜索互联网之后,我最终得到3个选择:

选项1- 使用 grails Envers插件 (请参阅http://code.google.com/p/grails-envers-
plugin/)。有人成功使用过吗?或者使用不带插件的Envers(请参阅此处),但如何使它与GORM一起使用?

选项2- 使用 Gvers插件 我在这里找到了:https :
//github.com/ziftytodd/gvers。我从未听说过有人在使用它,所以有人成功使用过它吗?

选择3 - 内置-in机制Weceem 已为Weceem
CMS的任何内容创建了一个版本控制系统。我可以从这个出色的应用程序的代码逻辑和设计中汲取灵感,但是这似乎有点过头了,我真的不喜欢使用非标准解决方案。

所以我的问题是,您建议我做什么?您是否曾经使用过这些选项中的任何一个?

非常感谢您的见解。


阅读 217

收藏
2020-06-20

共1个答案

一尘不染

由于在提问后的几天里我没有得到任何答案,因此我们开始研究所有选项,并得出以下结果/结论:

  1. Envers插件 :尽管Envers是使用Hibernate处理对象修订和审核的一种行之有效的方法(如Vadeg所指出的),但没有针对Grails的现成的解决方案。Envers插件绝对是无用的,并且是一个从未诞生过的项目。因此,仍然无法直接将Envers与GORM结合使用,但我认为Envers插件(可能是grail 2.0的一部分)有空间,因为Envers现在已成为Hibernate核心模块的组成部分。但是,我们没有时间实施这样的解决方案(当您有足够的时间和资源之前,这是最好的解决方案)…因此我们放弃了它。

  2. Gvers插件 :令人惊讶的是,即使在GRAILS世界中似乎也没有人使用该插件(即使插件创建者的电子邮件无效!),它也仍然具有魅力。使用它似乎有风险,但是如果您的要求很低(例如基本的版本控制系统),则应该使用它。

  3. 内置系统 :除非您要构建具有非常特定需求的CMS系统,或者相反,这非常简单,否则在任何其他情况下我都不会这样做。Weceem的实现非常好,提供了许多有关CMS内容修订的示例,但是即使如此,可惜他们没有使用Envers。无需重新发明轮子……更好地改进现有的法拉利,不是吗?

  4. VCS系统 :一位朋友建议我使用专门为此类任务而构建的现有解决方案:当然是 版本控制系统 !实际上, GIT 似乎是最理想的选择:您可以使用快速,可靠,无alomst的存储库。实际上,这是完美的解决方案。我唯一的问题:恩,我不知道如何使用Git(甚至更不用说它的API),而且我也没有时间。

底线

我当然会使用 Gvers, 但是如果您熟悉 Git 或对 GORMHibernate 感到满意,请去构建一个
grail 插件(基于 GitEnvers

2020-06-20