Hibernate:SQL错误8152 - 字符串或二进制数据将被截断

时间:2015-10-15 12:05:58

标签: java hibernate truncate

我正在使用Hibernate和MS SQL Server。当我尝试存储我的实体bean时,我不断得到:" SQL错误8152 sqlstate 22001"和"字符串或二进制数据将被截断"。

我还没有在任何地方找到这个问题。

2 个答案:

答案 0 :(得分:2)

我终于解决了它并想在这里分享解决方案,以防其他人遇到同样的问题。

通常,如果列定义得太小(例如尝试在定义为 varchar(256)的列中存储300个字符的字符串),就会发生这种情况。但就我而言,情况有所不同:

解决方案:当我在hibernate中使用注释定义表时,我错误地定义了指向另一个表的链接。

而不是将其定义为多对一:

@ManyToOne
public myEntity getMyEntity() {
  return myEntity;
}

我将其定义为普通列:

@Column
public myEntity getMyEntity() {
  return myEntity;
}

也许这有助于其他人。

答案 1 :(得分:0)

对我而言,其原因是试图将太大放入 不适合。< / p>

我认为问题可能是其他问题 - 不 - 我只是检查错误的列

我的建议是

  1. 查找抛出错误的示例
  2. 根据您的示例,浏览并检查每个列的长度