2017-04-14 442 views
0

我試圖通過Hibernate hibernate.save(實體)來table.It執行insert語句也給錯誤:SQL字符串或二進制數據將被截斷誤差

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

當我嘗試在SQL編輯器執行查詢它工作正常,但通過hibernate.save(entity)它給了我上面的錯誤。可以任何一個請幫我解決這個問題是什麼?

+0

什麼是您試圖插入的列的數據類型? – LONG

回答

0

最後解決的問題,其實在我的實體的屬性是:

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

所以在類型和大小varBinary(255) SQL表創建這是短期container.To通過修復它冬眠實體我補充說:

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

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

0

通常這個問題與列的類型和長度有關,檢查長度是否足夠大或數據類型是否兼容。這可能是一個二進制字符串溢出時填充爲int(int32)等

+0

我如何追蹤特定列? – NSF

+0

你有權訪問目標服務器實例嗎?如果是,請轉到該服務器實例的「Tables」,找到您嘗試插入的表。如果不檢查底層表,你就不能使用表實體 – LONG

+0

是的,我有權訪問服務器,我知道我試圖插入的表名,但是從錯誤中獲得的所有ididnt都是那個表的列名,長度或類型問題。 此外,它以前在postgresql工作正常,但是當我切換到sqlserver相同的查詢失敗 – NSF

0

我已經有這個問題,當使用錯誤的SQL方言。舉例來說,我使用的是與SQL服務器驅動程序的mysql方言。

再見

+0

我爲SQL Server 2012使用以下配置: driver_class:net.sourceforge.jtds.jdbc.Driver 方言:org.hibernate.dialect.SQLServerDialect ..是否正確? – NSF

+0

是的,這是正確的。但是你確定這個配置是在正確的地方嗎? jdbc.properties文件中的方言是什麼?我不記得確切,但我認爲有一些東西與配置的地方(一個爲司機,在連接) – Doublequote

相關問題