Grails:文本而不是varchar

时间:2015-01-14 09:57:36

标签: mysql grails gorm

我需要将我的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 Server 5.0.95版,Grails 2.4.3。 我完全神秘,并希望得到任何帮助..

1 个答案:

答案 0 :(得分:3)

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

static mapping = {
  longString type: 'text'
}

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

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