我的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以供参考。