2012-02-25 76 views
6

我有一個用於發送電子郵件到網站消息域級管理員字符串大小太大的數據庫字段

class Message { 

    String name 
    String subject 
    String body 

} 

我以爲字符串不會有一個最大尺寸,但是當把人的消息說太大,我在我的日誌文件中看到異常。現在我放了一個約束來限制郵件的大小爲250,但不能讓它變大,否則保存失敗。我正在使用PostgreSQL 9.1.1和Grails 1.3.7。有誰知道解決這個問題的方法嗎?

回答

8

可以使用約束指定數據類型:

static constraints = { 
    body type:'text' 
} 
+0

這沒有奏效。該列是作爲'VARCHAR(250)'生成的 – 2017-11-17 09:17:47

7

添加到您的域類:

static constraints = { 
    body(maxSize:1000) 
} 
0

設置typeconstraints塊不起作用。改爲執行以下操作。

static mapping = { 
    body type: 'text' 
} 
0

在數據庫中設置VARCHAR的最大大小,Grails在這件事上沒有任何發言權。你可以做的是告訴Grails你需要什麼,並且它會生成使用clob而不是字符串的DDL。

更改要使用的列的映射類型:「text」,同時在約束中添加所需的maxSize。 Grails會從中發現它應該將列數據類型設置爲clob。

(通常是CLOB字段將持有高達4GB,雖然有些數據庫允許改變這種。)

相關問題