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

时间:2019-07-02 00:54:39

标签: java spring hibernate

使用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

1 个答案:

答案 0 :(得分:0)

看来,答案是:在SQL数据库中这通常是不可能的。您应该查看您尝试更新的所有数据值,并找出哪个数据不适用于其列。也许可以通过一次更改一个值,然后查看导致错误的错误来采取更高级的方法。

我认为这是进入21世纪必须完成的19%的工作,这很荒谬,但显然,要走出黑暗的计算时代,我们还有很长的路要走。