精通Grails: Grails 事件模型 - 编程入门网
数据。 将这里所学到的知识与 “Grails 与遗留数据库” 中的 XML 备份和还原脚本相结合,就会得到了一个功 能强大的测试平台(testbed)。
因为 BootStrap.groovy 是一个可执行的脚本,而不是被动配置文件,所以理论上可以在 Groovy 中 做任何事情。您可能需要在启动时调用一个 Web 服务,通知中央服务器该实例正在运行。或者需要同步 来自公共源的本地查找表。这一切都有可能实现。 微型事件 了解一些大型事件后,现在看几个微型事件。 为域类添加时间戳 如果您提供几个特别的命名字段,GORM 会自动给它们添加时间戳,如清单 15 所示: 清单 15. 为字段添加时间戳
顾名思义,dateCreated 字段在数据第一次插入到数据库时被填充。lastUpdated 字段在每次数据库 记录更新之后被填充。 要验证这些字段在幕后被填充,需要再做一件事:在创建和编辑视图中禁用它们。为此,可以输入 grails generate-views Hotel 并删除 create.gsp 和 edit.gsp 文件中的字段,但有一种方法使 scaffolded 视图更具动态性。在 “用 Groovy 服务器页面(GSP)改变视图” 中,您输入了 grails install-templates,以便能够调试 scaffolded 视图。查看 scripts/templates/scaffolding 中的 create.gsp 和 edit.gsp。现在向模板中的 excludedProps 列表添加两个时间戳字段,如清单 16 所示 : 清单 16. 从默认 scaffolding 中删除时间戳字段
这会限制在创建和编辑视图中创建字段,但仍然在列表中保留字段并显示视图。创建一两个 Hotel 并 验证字段会自动更新。 如果应用程序已经使用这些字段名称,可以轻松地禁用此功能,如清单 17 所示: 清单 17. 禁用时间戳
回忆一下 “Grails 与遗留数据库”,在那里还可以指定 version false 来禁用 version 字段的自 动创建和更新。 精通Grails: Grails 事件模型(7)时间:2011-07-25 IBM Scott Davis向域类添加事件处理程序 除了给域类添加时间戳,还可以引入 4 个事件挂钩:beforeInsert、befortUpdate、beforeDelete 和 onload。 这些闭包名称反映了它们的含义。beforeInsert 闭包在 save() 方法之前调用。beforeUpdate 闭包 在 update() 方法之前调用。beforeDelete 闭包在 delete() 方法之前调用。最后,从数据库加载类后 调用 onload。 假设您的公司已经制有给数据库记录加时间戳的策略,而且将这些字段的名称标准化为 cr_time 和 up_time。有几个方案可使 Grails 符合这个企业策略。一个是使用在 “Grails 与遗留数据库” 中学到 的静态映射技巧将默认 Grails 字段名称与默认公司列名称关联,如清单 18 所示: 清单 18. 映射时间戳字段
另一种方案是将域类中的字段命名为与企业列名称匹配的名称,并创建 beforeInsert 和 beforeUpdate 闭包来填充字段,如清单 19 所示(不要忘记将新字段设置为 nullable — 否则 save() 方法会在 BootStrap.groovy 中静默失败)。 清单 19. 添加 beforeInsert 和 bef |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |