我在由 2 个类实现的 GAE 数据存储中的单个实体组中具有一对多关系:
用户.java:
public class User {
...
@Persistent(mappedBy = "user", defaultFetchGroup="true")
private List<Note> noteSets;
注意.java:
public class Note {
...
@Persistent
private User user;
我有以下代码通过用户键和注释 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();
}
}
此代码工作正常,但有时它会删除超过 1 个 Note 实体。这种行为的原因是什么?