我使用脚本来生成表而不是 hibernate 自动生成。有一个长度为5000的varchar列
create table my_code (
cc_id bigint not null auto_increment unique,
description varchar(5000),
primary key (cc_id)
) ENGINE=InnoDB
在我的类(class)中,我有一个描述字段:
@Column(name = "description", length=5000)
private String description;
但是当我插入长度为 300 的字段时,它会抛出:
Data truncation: Data too long for column 'description' at row 1
它接受低于 255(默认值)的任何值。为什么它没有获取长度 5000?
最佳答案
该问题与另一个表有关。我们还有一个包含“描述”字段的审计表。一旦我增加了审计表描述字段的大小,错误就消失了。不幸的是,hibernate 抛出的错误没有说明错误是在哪个表上抛出的,我假设它是在常规表上。
关于java - Hibernate 无法识别脚本中的列长度。它使用默认值并为列错误提供数据太长,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22619760/