sql - 指定从 GORM 类生成的 DDL 中的字段顺序?

标签 sql grails groovy grails-orm 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 和 version 字段之后)。还行吧。在这种情况下,但我有一些更广泛的表格,其中按字段顺序包含重要的上下文信息。

这是我的问题:你如何告诉 GORM 按照 groovy 类中声明的顺序对 SQL 中的字段进行排序?

最佳答案

似乎没有一种方法可以指定排序,但您始终可以根据需要创建自己的表,并在域类中提供名称映射。
您也可以让 GORM 创建表,然后以正确的顺序重新创建表,然后关闭 GORM 中的自动 DDL 内容。如果您使用 GORM 选择的字段和表名称,则不需要添加任何映射。

关于sql - 指定从 GORM 类生成的 DDL 中的字段顺序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/494135/

相关文章:

Java-Groovy : regex parse text block

sql - 选择数字组合与整数 SQL 的一部分匹配的位置

jquery - Grails:如何在 Twitter Bootstrap 3 模式中重新初始化 AJAX 内容

grails - 用于多对一的归属的Grails表单创建

ubuntu - 在 Ubuntu Lucid 上手动安装 groovy 的最佳实践是什么?

java - 闭包参数 : how to specify generic types for closure parameter in groovy

sql - SELECT CASE WHEN NULL 出现意外结果

java - 如何将Oracle日期格式转换为Java?

mysql - 添加外键时外键约束失败

grails - 如何在使用 grails 的 Jenkins CI 上配置测试报告?