2010-12-29 10 views
1

オブジェクトを永続化するためにjpaを使用しています。私はそれを維持しようとすると、私は次の例外を取得する:jpaを使用してオブジェクトを永続化する際の問題

Create failure,Error occurred while create Chargebasis 
           <openjpa-1.2.2-SNAPSHOT-r422266:778978M-OPENJPA-975 fatal general error> org.apache.openjpa.persistence.PersistenceException: The transaction has been rolled back. See the nested exceptions for details on the errors that occurred. 
    at org.apache.openjpa.kernel.BrokerImpl.newFlushException(BrokerImpl.java:2163) 
    at org.apache.openjpa.kernel.BrokerImpl.flush(BrokerImpl.java:2010) 
    at org.apache.openjpa.kernel.BrokerImpl.flushSafe(BrokerImpl.java:1908) 
    at org.apache.openjpa.kernel.BrokerImpl.flush(BrokerImpl.java:1679) 
    at org.apache.openjpa.kernel.DelegatingBroker.flush(DelegatingBroker.java:989) 
    at org.apache.openjpa.persistence.EntityManagerImpl.flush(EntityManagerImpl.java:592) 

    .... 

Caused by: <openjpa-1.2.2-SNAPSHOT-r422266:778978M-OPENJPA-975 nonfatal general error> org.apache.openjpa.persistence.PersistenceException: DB2 SQL Error: SQLCODE=-407, SQLSTATE=23502, SQLERRMC=TBSPACEID=2, TABLEID=517, COLNO=1, DRIVER=3.50.152 
FailedObject: prepstmnt 154143024 INSERT INTO XYZ (empid, empname,CREATE_TS, UPDT_TS) VALUES (?, ?, ?, ?) [org.apache.openjpa.jdbc.kernel.JDBCStoreManager$CancelPreparedStatement] 
    at org.apache.openjpa.jdbc.sql.DBDictionary.narrow(DBDictionary.java:4245) 
    at org.apache.openjpa.jdbc.sql.DBDictionary.newStoreException(DBDictionary.java:4210) 
    at org.apache.openjpa.jdbc.sql.DB2Dictionary.newStoreException(DB2Dictionary.java:504) 
    at org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:102) 
    at org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:72) 
    at org.apache.openjpa.jdbc.kernel.BatchingPreparedStatementManagerImpl.flushBatch(BatchingPreparedStatementManagerImpl.java:195) 
    at org.apache.openjpa.jdbc.kernel.BatchingConstraintUpdateManager.flush(BatchingConstraintUpdateManager.java:63) 
    .. 
Caused by: com.ibm.db2.jcc.b.lm: DB2 SQL Error: SQLCODE=-407, SQLSTATE=23502, SQLERRMC=TBSPACEID=2, TABLEID=517, COLNO=1, DRIVER=3.50.152 

empnameフィールドが空白なのでそれはありますか? COLNO = 1は最初(empid)または2番目の列(empname)を参照していますか? 私はjpaプロバイダとしてopen jpaを使用しています。

答えて

2

this documentationによると、あなたはSQL0407を見ていると、それは意味:

NULL値が列に許可または& 5.

ので

変数ではありません、確かに、あなたが入れしようとしていますa null許容列のNULL

1

COLNO = 1は、2番目の列(empname)に関連しています。空であるか、固有の制約に違反しているかを確認する必要があります。

+0

私はそれをチェックしました – akshay

+0

私はそれも、それが最大ファーストファインドの最大idとそれを増やして、それが0でないことを確信しています。 – akshay

+0

empnameはエラーでした。 empnameの値。 – akshay

関連する問題