从指定GORM类生成DDL字段顺序?
题
我用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()
}
不隶属于 StackOverflow