当您生成新的云端点库时, contains 方法始终如下所示:
private boolean containsObject(Object object) {
PersistenceManager mgr = getPersistenceManager();
boolean contains = true;
try {
mgr.getObjectById(Object.class, object.getId());
} catch (javax.jdo.JDOObjectNotFoundException ex) {
contains = false;
} finally {
mgr.close();
}
return contains;
}
乍一看,这看起来是个不错的方法,但考虑到默认的插入方法会检查包含,插入的全部意义在于您还没有 id。所以默认情况下插入总是失败。
我通过在 contains 方法中检查 null id 并在 id 为 null 时返回 false 来解决这个问题。但我想我错过了一些东西,有人可以告诉我吗?谢谢!