0

WAS 7 では完全に動作するコードがありますが、WAS 8.0.0.5 で実行すると失敗します。プロバイダーとして openJPA で JPA 2.0 を使用しています。em で persist を呼び出すと、ネストされた例外がスローされます。WAS 8.0.0.5 で JPA プログラムを作成できた人はいますか?

ここに例外があります

WTRN0074E: before_completion 同期操作から例外をキャッチしました: org.apache.openjpa.persistence.PersistenceException: DB2 SQL エラー: SQLCODE=-204、SQLSTATE=42704、SQLERRMC=.OPENJPA_SEQUENCE_TABLE、DRIVER=3.58.81 {prepstmnt -1559269434 SELECT SEQUENCE_VALUE FROM . OPENJPA_SEQUENCE_TABLE WHERE ID = ? FOR READ ONLY RS USE AND KEEP UPDATE LOCKS [params=?]}

4

2 に答える 2

2

SQLCODE = -204は、何かが欠落していることを示しています。ログはTHAKHANI.OPENJPA_SEQUENCE_TABLEを出力し続けます。これにより、テーブルが欠落している可能性があります。また、JPAが使用しているDB2ユーザーに、テーブルを作成してSELECTステートメントを実行する権限があることを確認することもできます。

于 2013-03-07T19:48:05.127 に答える
2

テーブルからエンティティを生成するときに、プライマリキー生成メカニズムとして Identity を選択することで、問題を解決することができました。また、persistence.xml に以下を追加します。

<properties>
    <!-- OpenJPA specific properties -->
    <property name="openjpa.TransactionMode" value="managed"/>
    <property name="openjpa.ConnectionFactoryMode" value="managed"/>
    <property name="openjpa.jdbc.DBDictionary" value="db2"/>
    <property name="openjpa.jdbc.Schema" value=<SchemaName>/>
 </properties>
于 2013-03-08T09:57:22.450 に答える