使用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
答案 0 :(得分:0)
看来,答案是:在SQL数据库中这通常是不可能的。您应该查看您尝试更新的所有数据值,并找出哪个数据不适用于其列。也许可以通过一次更改一个值,然后查看导致错误的错误来采取更高级的方法。
我认为这是进入21世纪必须完成的19%的工作,这很荒谬,但显然,要走出黑暗的计算时代,我们还有很长的路要走。