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

2024-05-25

我需要对我的文章实施修订系统grails网络应用程序。在搜索 grails 论坛、stackoverflow、grails 插件和谷歌搜索互联网后,我最终得到了 3 个选项:

Option 1- 使用grails Envers 插件 (see http://code.google.com/p/grails-envers-plugin/ http://code.google.com/p/grails-envers-plugin/)。有人使用成功过吗?或者使用Envers http://www.jboss.org/envers/没有插件(参见here http://grails.1312388.n4.nabble.com/Grails-1-1-1-Envers-1-2-1-GA-td1384836.html#a1384836)但是我怎样才能让它与 GORM 一起工作呢?

Option 2- 使用Gvers插件我在这里发现:https://github.com/ziftytodd/gvers https://github.com/ziftytodd/gvers。我没听说有人用过,请问有谁用过成功吗?

Option 3 - 内置机制. Weceem为 Weceem CMS 的任何内容创建了版本控制系统。我可以从这个伟大应用程序的代码逻辑和设计中汲取灵感,但这似乎有点矫枉过正,而且我真的不喜欢使用非标准解决方案。

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

非常感谢您的见解。


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

  1. 恩弗斯插件:虽然 Envers 是一种使用 Hibernate 处理对象修订和审核的成熟方法(正如 Vadeg 所指出的),但 Grails 没有这样现成的解决方案。 Envers 插件完全没有用,而且是一个永远不会诞生的项目。因此,直接将 Envers 与 GORM 一起使用仍然是不可能的,但我相信 Envers 插件有空间(可能是 grail 2.0 的一部分?),因为 Envers 现在是 Hibernate 核心模块不可或缺的一部分。然而,我们没有时间实施这样的解决方案(当您有足够的时间和资源时,这是迄今为止最好的解决方案)......所以我们放弃了它。

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

  3. 内置系统:除非您正在构建具有非常具体需求的 CMS 系统,或者相反,非常简单的系统,否则我不会在任何其他情况下使用它。 Weceem 的实现非常好,有大量 CMS 内容修订的示例,但即使如此,遗憾的是他们没有使用 Envers。无需重新发明轮子......更好地改进现有的法拉利,不是吗?

  4. 视频控制系统:一位朋友建议我使用专为此类任务构建的现有解决方案:版本控制系统当然!!实际上GIT http://git-scm.com/似乎是完美的候选人:快速、可靠、几乎免费的存储库可供您使用。实际上这是完美的解决方案。我唯一的问题是:嗯,我不知道如何使用 Git(更不知道它的 API),而且我也没有时间。

底线

我一定会用Gvers但如果你熟悉Git或者如果您觉得舒服GORM and 休眠,去构建一个 grail 插件(基于Git or Envers)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Grails 中管理对象修订? 的相关文章

随机推荐