当Grails从域对象创建表时,是否可以指定列顺序?我希望它保留域中指定的列顺序。相反,它似乎主要是按字母顺序排列的。我在documentation找不到任何内容。我发现this article详细说明了约束,但似乎没有解决数据库列的问题。
示例:
class Foo {
Long id
String zee
Integer baz
Integer bar
}
我希望数据库列按以下顺序排序:
id | zee | baz | bar
相反,我得到更接近的东西:
id | bar | baz | zee
答案 0 :(得分:2)
您始终可以在Grails之外创建数据库,并按照您希望的顺序放置列,Grails将乐意使用您提供的模式(假设只有列排序与默认情况下创建的列不同)
正如@Burt所指出的,更好的选择是使用database migration插件来创建(和管理)数据库。它允许您以与数据库无关的方式对数据库进行细粒度控制,并且还具有大量优势,可以使您的数据库架构和架构更改与代码一起进行版本化,对于升级和回滚。
答案 1 :(得分:1)
这是我所知道的唯一方法。使用静态约束并将其与订单一起编写
class Foo {
Long id
String zee
Integer baz
Integer bar
}
static constraints = {
id()
zee()
baz()
bar()
}