Wal*_*mar 13 grails grails-orm
我正在寻找扩展Grails CRUD生成功能的最佳方法.它应该是一个Grails插件,它为以下功能提供了额外的生成器:
Grails开箱即用的脚本应该尽可能小.到目前为止,我确定了3个实施设计策略:
任何解决方案都有利有弊.实施它的最佳方法是什么?也许有一种更简单的方法.
我一直在 Grails 中开发一个系统,该系统充分利用了版本概念(正如您上面提到的)。我的方法是您问题中列出的第二种方法。
我创建了两个字段:internalVersion e 已禁用。每个需要版本化的类都必须实现一个名为 Versionable 的接口。
我将尝试在这里解释使用版本功能所必需的场景之一(请原谅我的英语)。
使用这个概念的系统是一个商业系统,其中有一个名为 Quote 的类。
每个报价单可以有一个或多个版本,其中只有最后一个版本有效。每个报价及其版本都是根据与特定客户的谈判生成的。这样,客户向我们询问报价,如果由于某种原因他不喜欢价格(例如),我们可以生成带有一定折扣的新版本。每个报价都有一个唯一的代码,后跟当前版本,例如:QT-000022/0(第一个版本)、QT-000022/1(第二个版本)。
为了生成新版本,我使用了一种克隆当前对象的方法(使用一种完整且深入的另存为)。我将所有内容(属性和集合)复制到一个新对象。
clone 方法标识该类实现 Versionable 接口并执行以下操作:
oldQuote.disabled = true
newQuote.internalVersion = oldQuote.internalVersion + 1
Run Code Online (Sandbox Code Playgroud)
这样就可以确保只启用一个版本。
我希望你能理解我的做法。
| 归档时间: |
|
| 查看次数: |
590 次 |
| 最近记录: |