我收到错误:
将数据类型varchar转换为数字时出错。
当我尝试更新SQL Server(Microsoft)中的对象时。
我可以看到查询看起来像:
update
TABLE
set
ORDER_NUMBER=?,
where
IDENTIFIER=?
我认为IDENTIFIER存在问题。它是主键,但它是varchar,因此在模型类中定义为String。
在我的模型文件中,它看起来像:
@Id
@Column(name = "IDENTIFIER", nullable = false, unique = true, columnDefinition = "VARCHAR(17)")
private String identifier;
我只更新该表,其他应用程序在那里添加记录。
谢谢你的建议。
UPDATE
我可以看到这与Hibernate无关。即使使用SQL控制台,我也无法更新。我收到同样的错误
因为您没有为@Id列指定生成策略,所以它将默认为GenerationType.AUTO - 它使用int,long或short类型。
您的标识符属性是一个字符串,并且转换为其中一种数字类型失败。
一种选择是将标识符属性更改为long,short或int类型。
本文很好地概述了Hibernate的不同标识符。如果您的IDENTIFIER字段特别复杂,您可以使用自定义生成器:http://www.baeldung.com/hibernate-identifiers
好的,我知道出了什么问题。在该表上有一个触发Update的附加过程,并且出现了错误
将数据类型varchar转换为数字时出错。