我会遇到错误:
错误将数据类型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转换为数字。