0

オブジェクトのコレクションを削除しようとしていますが、どういうわけかまだ残っています。

List<Assignment> assignments = shift.getAssignments();
shift.getObjectContext().deleteObjects(assignments);
shift.getObjectContext().commitChanges();

commitChanges が実行された後、コレクション内の唯一の割り当てには次の値が含まれます。

[{<ObjectId:Assignment, assignment_id=26067>; committed; // snipped for clarity

deleteObject() の後、状態は DELETED になると思いました。commitChanges() の後は、コレクションに残してはいけません。これによると:http://cayenne.apache.org/docs/3.0/persistent-object-lifecycle.html

私は何が欠けていますか?

編集: コードを変更して別のデータ オブジェクトを削除し、それによって変更が割り当てに反映されました。

4

1 に答える 1

1

削除時にオブジェクトをコレクションから削除する場合は、次の 2 つのいずれかを実行できます。

  • コレクションのコピーを反復処理し、「removeFromAssignments()」を呼び出して手動で削除します
  • 割り当て -> シフト関係の NULLIFY 削除ルールを定義します。
于 2014-09-20T06:34:41.957 に答える