1

我刚开始使用 Grails,我有一个旧的 MSSQL DB,它需要一个新的花哨的 Grails UI。到目前为止我有这个代码

class Foo {
    version false
    columns {
        id column: 'legacy_id'
        bar column: 'legacy_column_1'
        baz column: 'legacy_column_2'
    }

    static transients = ['oldId']

    public int getOldId() { id }

    int id
    int bar
    String baz
}

还有一些额外的脚手架等等。一切正常,除了一件事,那就是我无法让 Grails 在视图中向我显示名为“Old Id”的列,或者就此而言显示列 id。无论我调整什么,我总是只在列表视图中得到栏栏和 baz。

互联网在这个话题上相当安静,所以要么我在这里遗漏了一些明显的东西,这真的很简单,要么我必须磨练我的谷歌技能......

4

1 回答 1

0

你需要把一些东西放到一个mapping块中

class Foo {

  static mapping = {
    version false
    table 'old_foo'  // whatever you legacy table name is
    id column: 'legacy_id'
    bar column: 'legacy_column_1'
    baz column: 'legacy_column_2'
  }

  static transients = ['oldId']

  public int getOldId() { id }

  int id //not really needed
  int bar
  String baz
}

当您使用generate viewsor创建脚手架时,generate all它不会自动将idor添加oldId到视图中 - 但您可以自己添加它以确保它在那里使用

${fooInstance.id}
${fooInstance.oldId}

您也不需要int id专门设置 - GORM 会自动创建它。

最后一件事 - 确保在 DataSource.groovy 文件中不要使用该dbCreate行更改数据库 - 我通常在使用旧数据库时将其完全注释掉。

于 2012-12-06T21:10:20.793 回答