1

我们正在使用休眠将我们的实体映射到数据库。

昨天我们遇到了一个DataTruncationException,因为一个comment-field 没有被标注一个长度。

我们更改了实体并重新部署了应用程序。根据文档,Hibernate 没有改变列。因此,我们手动将数据库表从 varchar(255) 更改为 longtext。

现在,entities 属性带有注释,@Column(length = 5000)并且数据库列的格式为 longtext。

DataTruncationException 仍然每次都出现

我们决定导出所有数据,让 hibernate 创建一个新的数据库,然后再次插入数据。这终于奏效了,问题已经解决了。

但我们注意到,hibernate 忽略了 hibernate_sequence->nextval 条目并从 id 1 重新开始。(Hibernate 在 hibernate_sequence 表中创建了第二行,包含 1)

删除该值并设置所需的 id 后,一切似乎都很好。

但这提出了两个问题:

  1. 为什么休眠不能识别修改后的表现在与实体匹配?

  2. 为什么hibernate在第一次运行时会忽略next_val,然后重新开始?

4

0 回答 0