休眠:哪一列???将数据类型 nvarchar 转换为数字时出错

使用 Spring + JPA (Repositories) + Hibernate 更新表中的现有记录时出现此错误。


2019-07-01 17:47:47.526  WARN o.h.engine.jdbc.spi.SqlExceptionHelper   : SQL Error: 8114, SQLState: 37000

2019-07-01 17:47:47.527 ERROR o.h.engine.jdbc.spi.SqlExceptionHelper   : Error converting data type nvarchar to numeric.

2019-07-01 17:47:47.527 ERROR o.h.i.ExceptionMapperStandardImpl        : HHH000346: Error during managed flush

[org.hibernate.exception.SQLGrammarException: could not execute statement]

2019-07-01 17:47:47.562 ERROR c.a.p.controller.AdminClaimController    : July 1, 2019 5:47:47 PM PDT

org.springframework.dao.InvalidDataAccessResourceUsageException: could not execute statement; SQL [n/a]; nested exception is

org.hibernate.exception.SQLGrammarException: could not execute statement

此更新操作最近有效,但现在无效。


Stackoverflow 问题在这里

我怎么知道这个问题与哪个列或数据值相关?


被问到的 Stackoverflow 问题结束


不幸的是,该表有 145 列。

调用时出现错误CrudRepository.save(Object myObject))


因为我确信我会同意他们的观点,所以请将您关于如何设计表格的评论放在其他地方的讨论论坛中,因为这显然不是我的问题所在 - 谢谢您,我保证我稍后会阅读它们!:D


幕布斯7119047
浏览 100回答 1
1回答

隔江千里

看起来答案是:这在 SQL 数据库下通常是不可能的。您应该查看您尝试更新的所有数据值并找出哪个不适合其列。也许可以采用一种更高级的方法,即一次更改一个值,然后查看是什么更改导致了错误。我认为进入 21 世纪还需要完成 19% 的工作是一件荒谬的事情,但显然我们要走出计算的黑暗时代还有很长的路要走。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java