用户报告我的服务正在返回错误,报告以下异常:
内部异常:com.mysql.jdbc.MysqlDataTruncation:数据截断:第 1 行的列“lastRegResult”的数据太长
错误代码:1406
有问题的列定义为VARCHAR(120)
,我尝试存储的数据很可能有时会更长。我预计数据会被静默截断,但似乎我错了。
我可以在调用之前将数据缩短到 120 个字符setLastRegResult
,但我不想在我的代码中使用硬编码常量 120,这样如果数据库列大小发生变化,我就不必更新它。我怎样才能干净地做到这一点?
一个解决方案可能是:
- 如何读取列的大小以便我自己截断它?
- 或者,我如何告诉 JPA 为我执行截断?