我正在使用Grails 2.1.1
和MySQL 5.5.27 Community Server
。
我需要有一个Domain类字段来生成TEXT或LONGTEXT列。
我认为这很简单,我看过很多例子:
Grails domain class, String field TEXT and LONGTEXT
How can grail generate TEXT not LONGTEXT data type or column
然而,我整夜都遇到了死胡同。我遵循了所有这些例子,似乎都没有工作(即使其他人报告它有效)。
以下是我创建的域类示例:
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
}
以下是我在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)
无论我尝试什么,我似乎总是得到一个varchar(255)类型的列。
道歉,如果我错过了一些愚蠢的事情,但我一直盯着这一整夜,并且认为我已经尝试过其他人报告的所有工作。
任何见解都会受到极大的赞赏。提前谢谢。
答案 0 :(得分:26)
我认为问题在于' sqlType'属于映射,而不是约束。
尝试:
static constraints = {
description2 size: 1..5000
}
或
static mapping = {
description2 sqlType:"text"
}