1

変更を Apache Cayenne コンテキストにコミットすると、次のような例外が発生します。

org.apache.cayenne.CayenneRuntimeException: [v.3.0.1 Sep 06 2010 15:09:38]
Temporary ID hasn't been replaced on commit

なぜこの例外が発生するのですか?

4

1 に答える 1

2

Cayenne が永久 ID の生成方法を認識していないオブジェクトをコミットしようとしています。これは通常、基になるテーブルに主キーが定義されていない場合に発生します。

この問題を解決するには、次のいずれかを実行します。

  • 基礎となるテーブルに、代理キー (新しく生成された ID 列) または自然キー (既存の列の組み合わせ) のいずれかの主キーを追加します。
  • PersistentObject.setObjectID()メソッドを使用して、問題のオブジェクトに独自の永続 ID を設定します。
于 2011-01-24T17:20:47.293 に答える