2012-09-29 5 views
10

Ich verwende Grails 2.1.1 und MySQL 5.5.27 Community Server.Grails GORM MySQL erzeugen TEXT oder LONGTEXT Spalte

Ich brauche ein Domänenklassenfeld, um eine TEXT- oder LONGTEXT-Spalte zu generieren.

dachte ich, das wäre einfach, und ich habe zahlreiche Beispiele gesehen:

Grails domain class, String field TEXT and LONGTEXT

How can grail generate TEXT not LONGTEXT data type or column

Allerdings habe ich in Sackgassen die ganze Nacht laufen. Ich habe all diese Beispiele verfolgt und keiner scheint zu funktionieren (obwohl andere berichtet haben, dass es funktioniert).

Hier ist ein Beispiel Domain Klasse I erstellt:

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 
} 

Hier ist, was ich in MySQL-Kommandoschnittstelle erhalten:

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) 

Egal, was ich versuche, ich scheine immer eine Spalte zu bekommen vom Typ varchar (255).

Entschuldigung, wenn ich etwas Dummes verpasse, aber ich habe die ganze Nacht hindurch angeguckt, und denke, ich habe alles versucht, was andere gemeldet haben, um zu arbeiten.

Jeder Einblick würde enorm geschätzt werden. Vielen Dank im Voraus.

Antwort

25

Ich denke, dass das Problem ist, dass 'sqlType' gehört in ein Mapping, keine Einschränkung.

Versuchen entweder:

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

oder

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

Das funktionierte, danke. Ich wusste, dass mir etwas Dummes fehlte ... es war ein langer Tag. Habe in meinem obigen Beispiel nur 'constraints' in' mapping' geändert und es hat funktioniert. –

Verwandte Themen