技术开发 频道

精通 Grails: GORM - 有趣的名称,严肃的技术

  Grails ORM 的 DSL

  可以使用任何常用的配置方法覆盖 Hibernate 的默认设置:HBM 映射文件或者标注。但是 Grails 提供了第三种方式,这种方式采用了裸对象的形式。只要向 POJO 添加一个 static mapping 块,就能覆盖默认的表和字段名称,如清单 9 所示:

  清单 9. 使用 GORM DSL

class Airline {
  static mapping
= {
    table
'some_other_table_name'
    columns {
      name column:
'airline_name'
      url column:'link'
      frequentFlyer column:'ff_id'
    }
  }

  static constraints
= {
    name(blank:
false, maxSize:100)
    url(url:
true)
    frequentFlyer(blank:
true)
    notes(maxSize:
1500)  
  }

  static hasMany
= [trip:Trip]
    
  
String name
  
String url
  
String frequentFlyer
  
String notes

  
String toString(){
    return name
  }
}

  如果要在新的 Grails 应用程序中使用现有的遗留表,那么这个映射块会特别有帮助。虽然这里只介绍了点皮毛,但 ORM DSL 提供的功能远不止是重新映射表和字段的名称。每个列的默认数据类型都可以覆盖。可以调整主键的生成策略,甚至指定复合主键。可以修改 Hibernate 的缓存设置,调整外键关联使用的字段,等等。

  要记住的要点是所有这些设置都集中在一个地方:POGO 内。

0
相关文章