我试图通过hibernate hibernate.save(entity)执行insert语句到table.It给出错误:
SQL Error: 8152, SQLState: 22001
String or binary data would be truncated.
当我尝试在sql编辑器上执行查询时,它工作正常,但是通过hibernate.save(entity)
它给了我上面的错误。可以帮我解决问题是什么?
答案 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?