2011-08-03 42 views
0

wsdl2javaを使用してPOJOを生成しています。その後、@EntityアノテーションをPOJOSに追加しました。次に、hbm2ddlを使用して、データを永続化するdbスキーマ&を生成します。 1つを除くすべてのクラスファイルでうまく動作します。 POJOをOracle 11g DBに保存しているうちに、次のエラーが発生します。エラー: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 

これを引き起こす原因は何ですか? Plsは私を助ける。

私の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フィールドがあり、私は最初にトレイルから離れました。

関連する問題