精通 Grails: Grails 与遗留数据库
2009-10-26 00:00:00 来源:WEB开发网mapping 块的第一条语句将 AirportMapping 类链接到 usgs_airports 表。下一条语句通知 Grails 表没有 version 列(GORM 通常会创建一个 version 列来优化乐观锁定)。最后,columns 块将 Grails 名称映射到数据库名称。
注意,使用了这个映射技术,表中的某些特定的字段是可以忽略的。在这种情况下,feature 与 county 列未表示在域类中。要想让未储存于表中的字段存在于域类中,可以添加静态 transients 行。该行看起来与一对多关系中使用的 belongsTo 变量类似。例如,如果 Airport 类中有两个字段不需要储存到表中,代码会是这样的:
static transients = ["tempField1", "tempField2"]
此处示范的 mapping 块仅仅涉及到此技术可以实现的皮毛而已。
设置遗留表为只读
输入 grails generate-all AirportMapping,创建 控制器和 GSP 视图。由于此表实质上是一个查找表,所以请进入 grails-app/controllers/AirportMappingController.groovy,只留下 list 和 show 闭包。移除 delete、edit、update、create 以及 save(不要忘记从 allowedMethods 变量中移除 delete、edit 和 save。可以完全移除整个行,或者只留下方括号空集)。
要使该视图为只读,还需要做几个快捷的更改。首先,从 grails-app/views/airportMapping/list.gsp 顶端移除 New AirportMapping 链接。然后对 grails-app/views/airportMapping/show.gsp 做相同操作。最后,从 show.gsp 底部移除 edit 和 delete 按钮。
输入 grails run-app,验证 mapping 块可以运行。请看一下图 1 中展示的页面:
图 1. 验证 mapping 块可以运行
- ››精通Photoshop之通道详解
- ››精通 Grails: 使用 Grails 进行单元测试(单元测试...
- ››精通 Grails: 创建自定义插件
- ››精通 Grails: 在企业中使用 Grails
- ››精通 Grails: Grails 与移动 Web
- ››精通 Grails: Grails 与遗留数据库
- ››精通 Grails: RESTful Grails
- ››精通 Grails: 用 JSON 和 Ajax 实现异步 Grails
- ››精通 Grails: 用定制 URI 和 codec 优化 Grails 中...
- ››精通 Grails: 身份验证和授权
- ››精通 Grails: 文件上传和 Atom 联合
- ››精通 Grails: 了解插件
更多精彩
赞助商链接