【发布时间】:2015-10-15 12:05:57
【问题描述】:
我正在使用带有 MS SQL Server 的 Hibernate。当我尝试存储我的实体 bean 时,我不断收到:“SQL 错误 8152 sqlstate 22001”和“字符串或二进制数据将被截断”。
我在任何地方都没有发现这个问题。
【问题讨论】:
我正在使用带有 MS SQL Server 的 Hibernate。当我尝试存储我的实体 bean 时,我不断收到:“SQL 错误 8152 sqlstate 22001”和“字符串或二进制数据将被截断”。
我在任何地方都没有发现这个问题。
【问题讨论】:
对我来说,造成这种情况的原因是试图将 太大 放入 无法容纳它的 列。
我认为问题可能是其他问题——不——我只是检查了错误的列。
我的建议是
【讨论】:
我终于解决了,想在这里分享解决方案,以防其他人有同样的问题。
通常,如果列定义得太小(例如尝试在定义为 varchar(256) 的列中存储包含 300 个字符的字符串),就会出现这种情况。但就我而言,情况不同:
解决方法:当我在hibernate中定义带有注释的表时,我错误地定义了指向另一个表的链接。
而不是将其定义为多对一:
@ManyToOne
public myEntity getMyEntity() {
return myEntity;
}
我把它定义为普通列:
@Column
public myEntity getMyEntity() {
return myEntity;
}
也许这对其他人有帮助。
【讨论】: