【问题标题】:Grails: text instead of varcharGrails:文本而不是 varchar
【发布时间】:2015-03-12 11:17:30
【问题描述】:

我需要我的 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。 我完全被迷惑了,如果有任何帮助,我将不胜感激..

【问题讨论】:

    标签: mysql grails grails-orm


    【解决方案1】:

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

    static mapping = {
      longString type: 'text'
    }
    

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

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

    【讨论】:

    • 但这正是问题中引用的代码。
    • 你真是一针见血!我完全忘记了配置文件中的 dbCreate = "update" 行。我放弃了数据库,现在一切正常!手脸。也许你可以编辑你的答案,所以我可以接受。
    • 我有一种感觉,这就是正在发生的事情 :) 我已经编辑了我的答案以包含验证信息。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-17
    • 1970-01-01
    • 2013-01-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多