GAE/Jではテーブルの親子関係を構成するために、Entityの主キーにcom.google.appengine.api.datastore.Keyを使う事が殆どだと思う。例えば以下に示す"Parent1"クラスのようなカンジ。
Keyオブジェクトが保持する連番をレコードのIDぽく使いたいなーと思って、KeyにencodedStringを使い、KeyのID値も別途保持できるような構成を作ってみた。例えば以下に示す"Parent2"クラスのようなカンジ。Owned relationshipの構成で保持しているChild2クラスも同様にencodedStringを使ったKeyを保持している。
こいつを削除するための処理として、以下のようにPersisteceManager#deletePersistence()を使って記述する。
Parent1は問題無く削除が動作しているが、Parent2の場合にだけExceptionが発生する。
なんでやろー??わかる人教えてください><
ちなみに、DataStoreService#delete()だと問題無く動作するんだけど、こっちはdelete cascadeが走らないんだよなー。
0 件のコメント:
コメントを投稿