我的Domain类中的String字段需要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以供参考。

09-19 14:32