2012-09-29 20 views
10

Tôi đang sử dụng Grails 2.1.1MySQL 5.5.27 Community Server.Grails GORM MySQL tạo cột TEXT hoặc LONGTEXT

Tôi cần có trường Lớp miền tạo cột TEXT hoặc LONGTEXT.

Tôi nghĩ đây sẽ là đơn giản, và tôi đã nhìn thấy rất nhiều ví dụ:

Grails domain class, String field TEXT and LONGTEXT

How can grail generate TEXT not LONGTEXT data type or column

Tuy nhiên, tôi đã chạy vào dead-kết thúc tất cả các đêm. Tôi đã làm theo tất cả các ví dụ này và dường như không có tác dụng nào (mặc dù những người khác đã báo cáo rằng nó hoạt động).

Dưới đây là một Class miền mẫu tôi đã tạo:

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 
} 

Đây là những gì tôi nhận được trong giao diện lệnh 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) 

Không có vấn đề gì tôi cố gắng, tôi luôn luôn dường như để có được một cột loại varchar (255).

Xin lỗi nếu tôi thiếu điều gì đó ngớ ngẩn, nhưng tôi đã nhìn chằm chằm vào đêm này và nghĩ rằng tôi đã thử mọi thứ mà những người khác đã báo cáo hoạt động.

Bất kỳ thông tin chi tiết nào sẽ được đánh giá rất nhiều. Cảm ơn bạn trước.

Trả lời

25

Tôi nghĩ rằng vấn đề là 'sqlType' thuộc về một ánh xạ, không phải là một ràng buộc.

Hãy thử một trong hai:

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

hoặc

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

Đó làm việc, cảm ơn. Tôi biết tôi đã thiếu một cái gì đó ngớ ngẩn ... đó là một ngày dài. Chỉ cần thay đổi 'ràng buộc' thành' ánh xạ' trong mẫu của tôi ở trên và nó hoạt động. –

Các vấn đề liên quan