11

私はとを使用Grails 2.1.1してMySQL 5.5.27 Community Serverいます。

ドメインクラスフィールドでTEXTまたはLONG​​TEXT列を生成する必要があります。

これは簡単だと思いました。そして、たくさんの例を見てきました。

Grailsドメインクラス、文字列フィールドTEXTおよびLONGTEXT

grailはLONG​​TEXTデータ型または列ではなくTEXTをどのように生成できますか

しかし、私は一晩中行き止まりに遭遇しました。私はこれらすべての例に従いましたが、どれも機能していないようです(他の人がそれが機能すると報告しているにもかかわらず)。

これが私が作成したサンプルドメインクラスです:

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)型の列を取得しているようです。

何か馬鹿げたことを見逃してしまったらお詫びしますが、私はこれを一晩中見つめていました。他の人が報告したことをすべて試したと思います。

どんな洞察も非常に高く評価されます。前もって感謝します。

4

1 に答える 1

27

問題は、「sqlType」が制約ではなくマッピングに属していることだと思います。

次のいずれかを試してください。

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

また

static mapping = {
  description2 sqlType:"text"
}
于 2012-09-29T04:35:09.210 に答える