2 つのクラスによって実装された GAE データストア内の単一のエンティティ グループ内に、1 対多の関係があります。
ユーザー.java:
public class User {
...
@Persistent(mappedBy = "user", defaultFetchGroup="true")
private List<Note> noteSets;
注.java:
public class Note {
...
@Persistent
private User user;
そして、ユーザーキーとメモIDで1つのメモを削除する次のコードがあります:
public static void deleteNote(String userKey, long noteId) {
PersistenceManager pm = DatastoreManager.get().getPersistenceManager();
try {
User user = pm.getObjectById(User.class, userKey);
Key childKey = user.getUserKey().getChild(Note.class.getSimpleName(), noteId);
Note note = pm.getObjectById(Note.class, childKey);
pm.deletePersistent(note);
} finally {
pm.close();
}
}
このコードは、複数の Note エンティティを削除する場合があることを除いて、正常に機能します。そのような行動の理由は何ですか?