2012-09-29 13 views
10

Używam Grails 2.1.1 i MySQL 5.5.27 Community Server.Grails GORM MySQL generuje kolumnę TEXT lub LONGTEXT

Potrzebuję pola klasy Domain, aby wygenerować kolumnę TEXT lub LONGTEXT.

myślałem, że to będzie proste, i widziałem wiele przykładów:

Grails domain class, String field TEXT and LONGTEXT

How can grail generate TEXT not LONGTEXT data type or column

Jednak ja napotkasz martwe kończy całą noc. Podążyłem za tymi wszystkimi przykładami i żaden nie wydaje się działać (mimo, że inni donosili, że to działa).

Oto próbka Domain Class I stworzył:

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 
} 

Oto co mam w MySQL polecenia interfejsu:

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) 

Bez względu na to, co staram, zawsze wydają się kolumnę typu varchar (255).

Przepraszam, jeśli brakuje mi czegoś głupiego, ale gapiłem się na to przez całą noc i sądzę, że próbowałem wszystkiego, co inni zgłosili do pracy.

Każdy wgląd byłby ogromnie doceniany. Z góry dziękuję.

Odpowiedz

25

Myślę, że problem polega na tym, że "sqlType" należy do mapowania, a nie do ograniczenia.

Spróbuj albo:

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

lub

static mapping = { 
    description2 sqlType:"text" 
} 
+0

To działa, dzięki. Wiedziałem, że przegapiłem coś głupiego ... To był długi dzień. Po prostu zmieniłem 'ograniczenia' na' mapowanie' w moim przykładzie powyżej i zadziałało. –

Powiązane problemy