Подтвердить что ты не робот

Grails GORM MySQL генерирует столбец TEXT или LONGTEXT

Я использую Grails 2.1.1 и MySQL 5.5.27 Community Server.

Мне нужно, чтобы поле класса Domain генерировало столбец TEXT или LONGTEXT.

Я думал, что это будет просто, и я видел множество примеров:

Класс домена Grails, текстовое поле TEXT и LONGTEXT

Как grail может генерировать TEXT, а не тип или столбец LONGTEXT

Тем не менее, я бежал в тупики всю ночь. Я следовал всем этим примерам, и ни один из них не работает (хотя другие сообщили, что он работает).

Вот пример класса домена I, созданного:

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).

Извиняюсь, если мне не хватает чего-то глупого, но я всю ночь смотрю на это и думаю, что я пробовал все, что сообщали другим.

Любое понимание будет оценено чрезвычайно. Заранее благодарю вас.

4b9b3361

Ответ 1

Я думаю, что проблема заключается в том, что 'sqlType' принадлежит к сопоставлению, а не к ограничению.

Попробуйте либо:

static constraints = {
  description2 size: 1..5000
}

или

static mapping = {
  description2 sqlType:"text"
}