首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何管理Grails中的对象修订?

如何管理Grails中的对象修订?
EN

Stack Overflow用户
提问于 2010-08-25 10:32:54
回答 3查看 2.3K关注 0票数 17

我需要为我的grails web应用程序中的文章实现一个修订系统。在搜索grails论坛、堆栈溢出、grails插件和googling internet之后,我最终得到了3个选项:

选项1 -使用grails Envers插件(参见http://code.google.com/p/grails-envers-plugin/)。有人成功地使用过它吗?或者在没有插件的情况下使用恩弗斯 (参见这里),但是如何使它与GORM一起工作呢?

选项2 -使用Gvers插件,我在这里发现:https://github.com/ziftytodd/gvers。我从来没听说过有人在使用它,所以有没有人曾经成功地使用过它?

选项3 -构建了-in机制。已经为Weceem的任何内容创建了一个版本控制系统。我可以从这个伟大的应用程序的代码和设计的逻辑中汲取灵感,但这似乎有些过火,而且我不太喜欢使用非标准的解决方案。

所以我的问题,你建议我怎么做?你曾经使用过这些选项吗?

非常感谢你的见解。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-08-30 21:42:19

由于在我提出问题后的几天里没有得到任何答案,我们已经开始调查所有选项,并得出以下结果/结论:

  1. Envers插件:虽然Envers是一种使用Hibernate处理对象修改和审计的成熟方法(正如Vadeg所指出的那样),但对于grails却没有现成的解决方案。Envers插件非常无用,而且是一个死气沉沉的项目。因此,在GORM中使用Envers仍然是不可能的,但我相信存在一个Envers插件的空间(可能是Grail2.0的一部分?)因为Envers现在是Hibernate核心模块的组成部分。但是,我们没有时间来实现这样的解决方案(当您有足够的时间和资源时,这是迄今为止最好的解决方案)--...so--我们放弃了它。
  2. Gvers插件:令人惊讶的是,这种插件工作起来就像一种魅力,即使似乎没有人在GRAILS世界中使用它(甚至是具有无效电子邮件的插件创建者!)使用它似乎有风险,但是如果您的需求很低(比如一个基本的版本控制系统),那么您应该使用它。
  3. 内置系统:除非您正在构建一个具有非常特定需求的CMS系统,或者相反地构建一个非常简单的系统,否则我不会在任何其他情况下支持它。Weceem是非常好的实现与大量的CMS内容修订的例子,但即使是这样,遗憾的是,他们没有使用Envers。没有必要重新发明wheel...better来改进现有的法拉利,不是吗?
  4. VCS系统:一位朋友建议我使用现有的解决方案,特别是针对这类任务:版本控制系统!实际上,吉特似乎是一个完美的选择:快速、可靠、几乎免费的存储库可供您使用。事实上,这是一个完美的解决方案。我唯一的问题是:我不知道如何使用Git (更不用说它的API),而且我也没有时间。

底线

我当然会使用Gvers,但是如果您熟悉Git,或者如果您对GORMHibernate感到满意,可以选择构建一个大盘插件(基于GitE 230E 131EnversE 232)。

票数 9
EN

Stack Overflow用户

发布于 2010-08-30 20:42:37

我在使用Hibernate的项目中使用了Envers,它工作得很好。GORM是基于Hibernate的,所以我认为它没有问题。

首先,您需要决定需要什么样的版本控制?您需要回滚对象图更改,还是需要处理某些字段?有时候,与其注入庞大的库,不如做一些小的本地实现。

如果您需要修改对象的图表,Envers是一个很好的选择。如果您需要修改一个字段,DIY :)

票数 2
EN

Stack Overflow用户

发布于 2011-10-31 17:31:00

卢卡斯·沃德插件工作。通过Grails 1.3.7确认,重要的是确保实体更新在事务中,因为envers依赖于它。只是提醒Grails控制器在默认情况下不是事务性的。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3564936

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档