我需要在我的文章中实现修订系统 圣杯 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 - 建造 - 机制. Weceem 已经为Weceem CMS的任何内容创建了一个版本控制系统。我可以从这个出色应用程序的代码和设计逻辑中汲取灵感,但似乎过分杀伤力,我真的不喜欢使用非标准解决方案。

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

非常感谢您的见解。

有帮助吗?

解决方案

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

  1. Envers插件 :虽然Envers是一种处理对象修订和用冬眠审核的良好方法(如Vadeg所指出的那样),但没有用于圣杯的本地解决方案。 Envers插件非常毫无用处,并且是一个永无止境的项目。因此,由于现在是Hibernate Core模块不可或缺的一部分,因此仍然无法直接直接直接使用具有GORM的Envers(可能是Grail 2.0?)的空间(也许是Grail 2.0?)。但是,我们没有时间实施这样的解决方案(到目前为止,当您有足够的时间和资源之前,这是最好的解决方案)...因此我们将其丢弃了。

  2. GVERS插件 :令人惊讶的是,即使似乎没有人在Grails World中使用它(即使是具有无效电子邮件的插件创建者!),这种插件也像魅力一样工作。选择它似乎有风险,但是如果您的要求很低(例如基本版本控制系统),则应该使用它。

  3. 内置系统 :除非您要构建具有非常具体需求的CMS系统,或者在其他情况下,我都不会这样做。 Weceem非常井井有条,并为CMS内容修订提供了大量示例,但即使为此,他们也不使用Envers。无需重新发明轮子...最好改善现有的法拉利,不是吗?

  4. VCS系统 :一位朋友建议我使用专门针对此类任务的现有解决方案: 版本控制系统 当然!!实际上 git 似乎是完美的候选人:可供您提供的快速,可靠,无铝存储库。实际上,这是完美的解决方案。我唯一的问题:嗯,我不知道如何使用git(甚至更少它的API),而我又没有时间。

底线

我一定会使用 Gvers 但是,如果您熟悉 git 或者如果您感到满意 Gorm冬眠, ,去构建Grail插件(要么基于 git 或者 Envers)

其他提示

我已经使用了Hibernate的项目中的Envers,它可以正常工作。 Gorm是基于冬眠的,因此我认为它没有问题。

首先,您需要决定需要哪种版本?您需要回滚对象图形更改还是需要照顾一些字段?有时最好做一些本地实施,而不是注入庞大的库。

如果您需要修改对象的图形,则ENVER是一个不错的选择。如果您需要对一个领域进行修订,DIY :)

卢卡斯·沃德的插件 作品。用Grails 1.3.7确认,重要的是要确保实体更新在交易中,因为Envers取决于它。只是为了提醒Grails控制器,默认情况下不是交易。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top