java - Hibernate:哪一列???将数据类型 nvarchar 转换为数字时出错

标签 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

最佳答案

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

我认为在进入 21 世纪 19% 的时候必须这样做是一件荒谬的事情,但显然我们还有很长的路要走,才能走出计算的黑暗时代。

关于java - Hibernate:哪一列???将数据类型 nvarchar 转换为数字时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56844056/

相关文章:

java - 在使用 spring security 注销用户之前调用一些逻辑?

java - 当我在下一行抛出异常时@Transactional 不起作用

java - Hibernate - 如何在不加载到内存的情况下删除条件?

java - 为什么此映射会导致尝试更新?

java - Java 结果集编码的有效方法

java - Spring Security 自定义身份验证提供程序 403 响应

java - hibernate 、多对一和删除

java - 带符号原始中的0是正数还是负数(或两者都是)?

java - 从文件读取,InputMismatchException

java - Web 应用程序服务器过载