Grails中的字符串大小对于数据库字段来说太大了

时间:2012-02-25 19:14:58

标签: grails

我有Message域类,用于向网站管理员发送电子邮件

class Message {

  String name
  String subject
  String body

}

我认为String不会有最大的大小,但是当人们输入太大的消息时,我会在日志文件中看到异常。现在我设置一个约束来限制消息的大小为250但不能使它更大,否则保存失败。我正在使用PostgreSQL 9.1.1和Grails 1.3.7。有谁知道解决这个问题的方法?

4 个答案:

答案 0 :(得分:8)

您可以使用约束指定数据类型:

static constraints = {
  body type:'text'
}

答案 1 :(得分:7)

将此添加到您的域类:

static constraints = {
    body(maxSize:1000)
}

答案 2 :(得分:1)

type块中设置constraints不起作用!

改为放入mapping块。

static mapping = {
   body type: 'text'
}

答案 3 :(得分:0)

VARCHAR的最大大小是在数据库中设置的,Grails在这个问题上没有任何发言权。你能做的就是告诉Grails你需要什么,它会生成使用clob而不是字符串的DDL。

将列的映射更改为使用类型:“text”,同时在约束中添加所需的maxSize。 Grails将从中发现它应该将列数据类型设置为clob。

(通常一个clob字段最多可容纳4GB,但有些数据库允许更改它。)