Hibernate无法更新对象:错误将数据类型VARCHAR转换为数字



我会遇到错误:

错误将数据类型VARCHAR转换为数字。

当我尝试更新SQL Server(Microsoft(中的对象时。

我可以看到查询看起来像:

update
    TABLE
set
    ORDER_NUMBER=?,
where
    IDENTIFIER=?

我认为标识符是问题。它是主要键,但它是varchar,因此在模型类中定义为字符串。

在我的模型文件中,看起来像:

@Id
@Column(name = "IDENTIFIER", nullable = false, unique = true, columnDefinition = "VARCHAR(17)")
private String identifier;

我只在更新该表,其他应用程序添加了记录。

感谢您的建议。

update

我可以看到的与冬眠没有连接。即使使用SQL控制台,我也无法更新。我遇到的错误

,因为您尚未指定@ID列的一代策略,因此它将默认为generationType.auto-这使用类型int,长或短。

您的标识符属性是字符串,转换为其中一种数字类型。

一个选项是将您的标识符属性更改为类型长,短或int。

本文很好地概述了冬眠的不同标识符。如果您的标识符字段特别复杂,则可以使用自定义生成器:http://www.baeldung.com/hibernate-indentifiers

好吧,我知道怎么了。在该表上,还有其他过程触发更新,并且存在

的错误

错误将数据类型VARCHAR转换为数字。

相关内容

最新更新