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

csa*_*aam 5 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;
Run Code Online (Sandbox Code Playgroud)

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

com.mysql.jdbc.MysqlDataTruncation: Data truncation: Data too long for column 'CONTENT' at row 1
Run Code Online (Sandbox Code Playgroud)

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

vin*_*odn 7

根据JPA doc,"length"仅用于String属性.

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

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

@Column(columnDefinition = "LONGBLOB") 
private byte[] content;
Run Code Online (Sandbox Code Playgroud)