WEB开发网
开发学院软件开发Java 精通 Grails: Grails 与遗留数据库 阅读

精通 Grails: Grails 与遗留数据库

 2009-10-26 00:00:00 来源:WEB开发网   
核心提示: mapping 块的第一条语句将 AirportMapping 类链接到 usgs_airports 表,下一条语句通知 Grails 表没有 version 列(GORM 通常会创建一个 version 列来优化乐观锁定),精通 Grails: Grails 与遗留数据库(10),最后,col

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 块可以运行
精通 Grails: Grails 与遗留数据库

上一页  5 6 7 8 9 10 

Tags:精通 Grails Grails

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接