数据截断错误 - 列的数据太长

时间:2012-04-26 07:57:55

标签: java mysql jpa

有趣的是,在实体中:

public static final int maxContentSize = 2097152; //2Mb
@Lob
@Column(length=maxContentSize)
private byte[] content;
@Column(length = 100)
private String mimetype;
@Column(length = 50)
private String fileName;

但是,一些文件(65-70k大小)插入正常,但大多数文件都会出错:

com.mysql.jdbc.MysqlDataTruncation: Data truncation: Data too long for column 'CONTENT' at row 1

我已经检查过,在创建实体之前,尺寸是正确的。

1 个答案:

答案 0 :(得分:7)

根据JPA doc,“length”仅用于String属性。

  

(可选)列长度。 (仅在使用字符串值列时适用。)

如果您使用工具自动生成DDL,则可以使用“columnDefinition”属性

@Column(columnDefinition = "LONGBLOB") 
private byte[] content;