Grails GORM MySQL生成TEXT或LONGTEXT列

Phi*_*enn 11 mysql grails grails-orm grails-2.0

我正在使用Grails 2.1.1MySQL 5.5.27 Community Server.

我需要一个Domain类字段生成一个TEXT或LONGTEXT列.

我觉得这很简单,我看过很多例子:

Grails域类,字符串字段TEXT和LONGTEXT

如何生成TEXT而不是LONGTEXT数据类型或列

但是,我整晚都遇到了死胡同.我遵循了所有这些例子,似乎都没有工作(即使其他人报告它有效).

以下是我创建的域类示例:

class Coltest {

    static constraints = {
        description1 sqlType: 'longtext'
        description2 sqlType: 'text'
        description3 type: 'text'
        description4 column: "longDescription", type: "text", nullable:true
    }

    String description1
    String description2
    String description3
    String description4
}
Run Code Online (Sandbox Code Playgroud)

这是我在MySQL命令界面中得到的:

mysql> describe coltest;
+--------------+--------------+------+-----+---------+----------------+
| Field        | Type         | Null | Key | Default | Extra          |
+--------------+--------------+------+-----+---------+----------------+
| id           | bigint(20)   | NO   | PRI | NULL    | auto_increment |
| version      | bigint(20)   | NO   |     | NULL    |                |
| description1 | varchar(255) | NO   |     | NULL    |                |
| description2 | varchar(255) | NO   |     | NULL    |                |
| description3 | varchar(255) | NO   |     | NULL    |                |
| description4 | varchar(255) | YES  |     | NULL    |                |
+--------------+--------------+------+-----+---------+----------------+
6 rows in set (0.01 sec)
Run Code Online (Sandbox Code Playgroud)

无论我尝试什么,我似乎总是得到一个varchar(255)类型的列.

如果我错过了一些愚蠢的事情,我会道歉,但我一整夜都在盯着这个,并且认为我已经尝试过其他人报告的所有工作.

任何见解都会受到极大的赞赏.先感谢您.

Gre*_*eek 27

我认为问题在于'sqlType'属于映射,而不是约束.

尝试:

static constraints = {
  description2 size: 1..5000
}
Run Code Online (Sandbox Code Playgroud)

要么

static mapping = {
  description2 sqlType:"text"
}
Run Code Online (Sandbox Code Playgroud)