2011-08-03 28 views
0

我正在使用wsdl2java生成POJO。然後將@Entity註釋添加到POJOS。然後使用hbm2ddl來生成持久化數據的數據庫模式&。除了一個以外,它適用於我所有的課程文件。雖然將POJO保存到Oracle 11g數據庫中,但出現以下錯誤:錯誤:ORA-01461:只能將LONG值綁定爲插入到LONG列中

java.sql.BatchUpdateException: ORA-01461: can bind a LONG value only for insert into a LONG column 
at oracle.jdbc.driver.DatabaseError.throwBatchUpdateException(DatabaseError.java:343) 
at oracle.jdbc.driver.OraclePreparedStatement.executeBatch(OraclePreparedStatement.java:10656) 
at org.hibernate.jdbc.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:48) 
at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:242) 
... 11 more 

無法弄清楚是什麼導致了這種情況?請幫助我。

我的POJO類是 -

@Entity 
public class ServiceTrain implements java.io.Serializable { 
private java.lang.String accountName; 

private short applicationModeId; 

private java.lang.String cityLocation; 

private short countryId; 

private java.lang.String customerCompany; 

private java.lang.Long customerHoldingId; 

private java.util.Calendar lastChangedAt; 

private short loadModeId; 

private short marketId; 

private short marketSegmentId; 

private java.lang.String operatorCompany; 

private java.lang.Long operatorHoldingId; 

private short plantTypeId; 

private java.lang.String postalCode; 

private java.lang.Integer provinceStateId; 

private short responsibleCountryId; 

private com.siemens.scr.ServicePlantObjects[] servicePlantObjectsArray; 

@Id 
private long serviceTrainId; 

private java.lang.String streetAddress; 

private java.lang.String trainName; 

public ServiceTrain() { 
} 
.... 
.... <getters & setters> 
} 
+1

嗨Munna。如果您可以提供生成的DDL,這將會很有幫助。 –

回答

0

我真的不知道這個問題的原因。但是每當我向表中插入一條記錄時,通過創建一個新的ServiceTrain bean來解決這個問題。由於一些奇怪的原因,這工作正常。

1

我解決了它,當我發現我試圖在Varchar2字段中輸入4000多個字符的字符串時。

我減少了條目的長度,錯誤消失了。

表中還有其他的NUMBER字段,這使得我最初離開了線索。

相關問題