0

我正在使用 wsdl2java 来生成 POJO。然后将@Entity 注解添加到 POJOS。然后使用 hbm2ddl 生成数据库模式并保存数据。它适用于我所有的类文件,除了一个。将 POJO 保存到 Oracle 11g db 时出现以下错误

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>
}
4

2 回答 2

1

当我发现我试图在 Varchar2 字段中输入一个 4000 多个字符的字符串时,我解决了这个问题。

我减少了条目的长度,错误消失了。

表中还有其他 NUMBER 个字段,这让我一开始就不知所措。

于 2011-11-16T17:35:32.400 回答
0

我真的不知道这个问题的原因。但是通过每次我向表中插入记录时创建一个新的 ServiceTrain bean 来解决这个问题。出于某种奇怪的原因,这很好用。

于 2011-08-04T17:24:51.140 回答