删除GAE数据存储中的子实体会导致删除多个实体

时间:2012-05-05 15:47:45

标签: java google-app-engine google-cloud-datastore jdo

我在由2个类实现的GAE数据存储区中的单个实体组内有一对多的关系:

User.java:

public class User {
    ...
    @Persistent(mappedBy = "user", defaultFetchGroup="true")
    private List<Note> noteSets;

Note.java:

public class Note {
    ... 
    @Persistent
    private User user;

我有以下代码用户键删除一个Note并记下id:

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实体。这种行为的原因是什么?

0 个答案:

没有答案