生成新的云端点库时,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;
}
乍一看这看起来是一个很好的方法,但考虑到默认的insert方法用contains进行检查,插入的整个点是你还没有id。因此,默认情况下,插入始终失败。
我通过在contains方法中检查null id然后如果id为null则返回false来解决这个问题。但我想我错过了一些东西,有人可以请教我这个吗?谢谢!