我在GAE数据存储区中有一个属性contactKey。最初,contactKey的值将为null。然后我将存储contactKey的值,这将是不同JDO的关键。
问题是以下方法会在不同的地方被多次调用。因此,相同的数据将被多次写入。当我试图检查相等性时,它抛出了空指针异常,因为最初contactKey为null。我想坚持不关心null或有效值。这可能吗?
public void saveContactLogJDO(ContactLogJDO contactLog, Long key)
{
try {
ContactJDO contactJdo = null;
persist(contactLog);
//This returns entire entity
contactJdo = utils.getById(contactJdo.class,key);
contactJdo.setContactByKey(contactLog.getId());
utils.persist(contactJdo);
} catch (Exception e) {
utils.printStackTrace(e);
}
}
我想进行以下检查,但getContactByKey会抛出空指针异常,因为最初该值为null
if(contactLog.getId()!=null && contactLog != null){
if(!contactJdo.getContactByKey().equals(contactLog.getId())){
contactJdo.setContactByKey(contactLog.getId());
utils.persist(contactJdo);
}
}