5

当 Grails 从域对象创建表时,是否可以指定列顺序?我希望它保留域中指定的列顺序。相反,它似乎主要是按字母顺序排列的。我在文档中找不到任何东西。我发现这篇文章详细说明了指定约束,但这似乎并没有解决数据库列的问题。

例子:

class Foo {
    Long id
    String zee
    Integer baz
    Integer bar
}

我希望将数据库列排序为:

id | zee | baz | bar

相反,我得到了更接近的东西:

id | bar | baz | zee
4

2 回答 2

2

您始终可以在 Grails 之外创建数据库并将列按您希望的任何顺序放置,Grails 将很乐意使用您提供的模式(假设只有列顺序与默认情况下想要创建的不同)

正如@Burt 所指出的,一个更好的选择是使用数据库迁移插件来创建(和管理)数据库。它允许您以与数据库无关的方式对数据库进行细粒度控制,并且还具有使您的数据库模式和模式更改与您的代码一起版本化的巨大优势,用于升级和回滚

于 2012-08-16T20:08:32.157 回答
2

据我所知,这是唯一的方法。使用静态约束并将它们与您的订单一起编写

class Foo {
    Long id
    String zee
    Integer baz
    Integer bar
}

static constraints = {
    id()
    zee()
    baz()
    bar()
}
于 2016-08-02T07:21:18.187 回答