我需要为我的 grails Web 应用程序中的文章实现修订系统。在搜索 grails 论坛、stackoverflow、grails 插件和谷歌搜索互联网后,我最终得到了 3 个选项:
选项 1 - 使用 grails Envers 插件(请参阅 http://code.google.com/p/grails-envers-plugin/ )。有人使用成功过吗?或者使用Envers没有插件(请参阅 here ),但如何使其与 GORM 一起使用?
选项 2 - 使用 Gvers 插件,我在这里找到了:https://github.com/ziftytodd/gvers 。我从来没有听说过有人用过它,所以有人成功地使用过它吗?
选项 3 - 内置机制。 Weceem 为 Weceem CMS 的任何内容创建了版本控制系统。我可以从这个伟大应用程序的代码逻辑和设计中汲取灵感,但这似乎有点矫枉过正,而且我真的不喜欢使用非标准解决方案。
所以我的问题是,你建议我做什么?您曾经使用过这些选项吗?
非常感谢您的见解。
最佳答案
由于我在提出问题后的几天内没有得到任何答案,我们已开始调查所有选项并得出以下结果/结论:
Envers 插件:虽然 Envers 是一种使用 Hibernate 处理对象修订和审核的成熟方法(正如 Vadeg 所指出的),但没有这样的特殊方法。 grails 的架子解决方案。 Envers 插件完全没用,是一个永远不会诞生的项目。因此,直接将 Envers 与 GORM 结合使用仍然是不可能的,但我相信 Envers 插件有空间(可能是 grail 2.0 的一部分?),因为 Envers 现在是 Hibernate 核心模块不可或缺的一部分。但是,我们没有时间实现这样的解决方案(当您有足够的时间和资源时,这是迄今为止最好的解决方案)...所以我们放弃了它。
Gvers 插件:令人惊讶的是,即使在 GRAILS 世界中似乎没有人使用它(甚至是拥有无效电子邮件的插件创建者!),这个插件仍然像魅力一样工作! )。使用它似乎有风险,但如果您的要求较低(例如基本版本控制系统),您应该使用它..
内置系统:除非您正在构建具有非常特定需求的 CMS 系统,或者相反非常简单的系统,否则我不会在任何其他情况下使用它。 Weceem 的实现非常好,有大量 CMS 内容修订的示例,但即使如此,遗憾的是他们没有使用 Envers。无需重新发明轮子...更好地改进现有的法拉利,不是吗?
VCS 系统:一位 friend 建议我使用专为此类任务构建的现有解决方案:当然是版本控制系统!其实GIT 似乎是完美的候选者:快速、可靠、几乎免费的存储库可供您使用。实际上这是完美的解决方案。我唯一的问题是:嗯,我不知道如何使用 Git(更不知道它的 API),而且我也没有时间。
底线
我肯定会使用 Gvers,但如果您熟悉 Git 或者您对 GORM 和 Hibernate 感到满意的话strong>,去构建一个 grail 插件(基于 Git 或 Envers)
关于hibernate - 如何在 Grails 中管理对象修订?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3564936/