使用 Spring + JPA(存储库)+ 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
最佳答案
看来答案是:这在 SQL 数据库中通常是不可能的。您应该查看尝试更新的所有数据值,并找出哪一个不适合其列。也许可以采取一种更高级的方法,一次更改一个值,然后查看是什么更改导致了错误。
我认为在进入 21 世纪 19% 的时候必须这样做是一件荒谬的事情,但显然我们还有很长的路要走,才能走出计算的黑暗时代。
关于java - Hibernate:哪一列???将数据类型 nvarchar 转换为数字时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56844056/