Grails GORM MySQL 生成 TEXT 或 LONGTEXT 列

Posted

技术标签:

【中文标题】Grails GORM MySQL 生成 TEXT 或 LONGTEXT 列【英文标题】:Grails GORM MySQL generate TEXT or LONGTEXT column 【发布时间】:2012-09-20 22:06:56 【问题描述】:

我正在使用Grails 2.1.1mysql 5.5.27 Community Server

我需要让域类字段生成 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) 类型的列。

如果我错过了一些愚蠢的事情,我深表歉意,但我整晚都在盯着这个,并认为我已经尝试了其他人报告的所有工作。

任何见解都将不胜感激。提前谢谢你。

【问题讨论】:

【参考方案1】:

我认为问题在于“sqlType”属于映射,而不是约束。

试试:

static constraints = 
  description2 size: 1..5000

static mapping = 
  description2 sqlType:"text"

【讨论】:

成功了,谢谢。我知道我错过了一些愚蠢的东西......这是漫长的一天。刚刚在我上面的示例中将constraints 更改为mapping 并且它起作用了。

以上是关于Grails GORM MySQL 生成 TEXT 或 LONGTEXT 列的主要内容,如果未能解决你的问题,请参考以下文章

Grails + GORM:GORM 中默认的 equals() 实现是啥?

Grails 查询不使用 GORM

Grails/GORM“入”标准

GRAILS / GORM:动态多重连接

Grails / GORM,禁用一级缓存

如何在 Grails/GORM 中将派生属性设置为小写?