如何在Spring Roo注释(或jpa注释)实体中定义一个大字符串,varchar(255)是不够的

时间:2012-07-30 13:53:06

标签: jpa spring-roo

在spring-roo实体中,我定义了一个内容字段来记录文章的内容:

@NotNull
private String content;

但是在mysql字段中,它映射到varchar(255),它太短而无法记录文章的内容,因此引发了以下异常:

ERROR org.hibernate.util.JDBCExceptionReporter - Data truncation: Data too long for column 'content' at row 1

我的问题是mysql中的大字符串字段类型是什么? (在访问数据库中,它是“备忘录”),如何在Spring Roo中定义此注释以使其记录更多数据?感谢

2 个答案:

答案 0 :(得分:5)

一种选择是添加尺寸注释,例如

@NotNull
@Size(max = 500)
private java.lang.String content;

另一种选择是使用LOB字段:

@NotNull
@Lob
private byte[] content;

如果我需要一个大于255个字符的字符串字段,我通常使用LOB字段。但请注意,通常无法在LOB字段内搜索数据。

答案 1 :(得分:1)

尝试

@Column(columnDefinition="varchar(255)")