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

时间:2017-04-14 13:26:22

标签: hibernate sql-server-2008

我试图通过hibernate hibernate.save(entity)执行insert语句到table.It给出错误:

 SQL Error: 8152, SQLState: 22001
String or binary data would be truncated. 

当我尝试在sql编辑器上执行查询时,它工作正常,但是通过hibernate.save(entity)它给了我上面的错误。可以帮我解决问题是什么?

3 个答案:

答案 0 :(得分:1)

通常该问题与列的类型和长度有关,检查长度是否足够大或数据类型是否兼容。当填充到int(int32)等时,这可能是二进制字符串溢出。

答案 1 :(得分:0)

使用错误的sql方言时我已经遇到过这个问题。例如,我使用sql server驱动程序的mysql方言。

再见

答案 2 :(得分:0)

最后问题已解决,实际上在我的实体中他们是财产:

@Column ( name = "myArray" )
private byte[] myArray;

所以SQL中的表创建类型和大小varBinary(255)这是短容器。要通过hibernate修复它实体我添加了:

@Lob
@Column ( name = "myArray" )
private byte[] myArray;

感谢:What is the significance of @javax.persistence.Lob annotation in JPA?