@Override public void save(CollectionItemData data) { Query<CollectionItemData> query = createQuery(data.getCollectionId()) .field(ITEM).equal(data.getItem()); UpdateOperations<CollectionItemData> updateOperations = datastore.createUpdateOperations( CollectionItemData.class); Optional<FormData> formData = data.getFormData(); if (formData.isPresent()) { updateOperations.set(FORM_DATA, formData.get()); } else { updateOperations.unset(FORM_DATA); } datastore.update(query, updateOperations, new UpdateOptions().upsert(true)); }