我用GORM生成从Groovy类我的数据库的DDL。这是伟大的。然而,在生成的SQL字段的顺序是不一样的类的字段的顺序。例如,如果我创建类

class Person
{
  String firstName
  String lastName
  String address
  String email
}

以下SQL生成(为MySQL)

CREATE TABLE `test` (
  `id` bigint(20) NOT NULL auto_increment,
  `version` bigint(20) NOT NULL,
  `address` varchar(255) NOT NULL,
  `email` varchar(255) NOT NULL,
  `first_name` varchar(255) NOT NULL,
  `last_name` varchar(255) NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1

的字段已被排序成字母顺序(自动生成的ID和版本字段之后)。还行吧。在这种情况下,但我有一些更广泛的表,其中有在字段的顺序很重要的背景信息。

下面是我的问题:你怎么知道GORM命令在SQL中的字段声明的Groovy类的顺序?

有帮助吗?

解决方案

有没有出现要指定排序的方式,但你希望他们你总是可以创建自己的表,然后在你的领域对象提供名称映射。 你也可以让GORM创建表,然后重新按照正确的顺序表,之后关闭自动DDL东西在GORM。如果您使用GORM选择的领域和表名,你就不需要添加任何映射。

其他提示

我没有绝对的把握这一点,但制约关闭定义视图中的字段的顺序,也许这反映在表中的字段。

class Person
{
  String firstName
  String lastName
  String address
  String email
}

static constraints = {
  firstName()
  lastName()
  address()
  email()
}
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top