Grails:文本而不是 varchar

Grails: text instead of varchar

我的域 class 中的字符串字段需要 MySQL 列类型为 TEXT 或 VARCHAR(3000),但我尝试的任何操作似乎都不起作用 - 它仍然是 VARCHAR(255) .我试过了

static mapping = {
   longString type: 'text'
} 

static mapping = {
   longString sqlType: 'text'
}  

static constraints = {
   longString (blank: true, nullable: true, maxSize: 3000)
} 

static constraints = {
   longString (blank: true, nullable: true, size: 0..65535)
}

MySQL 服务器版本 5.0.95,Grails 2.4.3。 我很困惑,希望得到任何帮助..

您需要在 mapping 块而不是 constraints 中定义列的类型。假设 属性 的名称是 longString,添加这个

static mapping = {
  longString type: 'text'
}

这将创建一个 MySQL 类型为 longtext 的列。

要验证这是否有效,请尝试删除您的数据库,创建一个新的(空)数据库,重新启动应用程序并检查创建的列的类型。请参阅 this example 以供参考。