0

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 エンティティを削除する場合があることを除いて、正常に機能します。そのような行動の理由は何ですか?

4

0 に答える 0