/** * @param query * @param ops * @param <T> * @return */ public <T> UpdateResults<T> update(Query<T> query, UpdateOperations<T> ops) { return update(query, ops, false, true); }
/** * @param query * @param ops * @param <T> * @return */ public <T> UpdateResults<T> updateFirst(Query<T> query, UpdateOperations<T> ops) { return update(query, ops, false, false); }
/** * @param query * @param ops * @param createIfMissing * @param wc * @param <T> * @return */ public <T> UpdateResults<T> update(Query<T> query, UpdateOperations<T> ops, boolean createIfMissing, WriteConcern wc) { return update(query, ops, createIfMissing, true, wc); }
/** * @param query * @param ops * @param createIfMissing * @param wc * @param <T> * @return */ public <T> UpdateResults<T> updateFirst(Query<T> query, UpdateOperations<T> ops, boolean createIfMissing, WriteConcern wc) { return update(query, ops, createIfMissing, false, wc); }
/** * @param query * @param ops * @param createIfMissing * @param multi * @param <T> * @return */ @SuppressWarnings("rawtypes") private <T> UpdateResults<T> update(Query<T> query, UpdateOperations ops, boolean createIfMissing, boolean multi) { return update(query, ops, createIfMissing, multi, getWriteConcern(query.getEntityClass())); }
/** * @param query * @param ops * @param createIfMissing * @param <T> * @return */ public <T> UpdateResults<T> update(Query<T> query, UpdateOperations<T> ops, boolean createIfMissing) { return update(query, ops, createIfMissing, getWriteConcern(query.getEntityClass())); }
/** * @param query * @param ops * @param createIfMissing * @param <T> * @return */ public <T> UpdateResults<T> updateFirst(Query<T> query, UpdateOperations<T> ops, boolean createIfMissing) { return update(query, ops, createIfMissing, getWriteConcern(query.getEntityClass())); }
/** * @param query * @param ops * @param createIfMissing * @param multi * @param wc * @param <T> * @return */ @SuppressWarnings("rawtypes") private <T> UpdateResults<T> update(Query<T> query, UpdateOperations ops, boolean createIfMissing, boolean multi, WriteConcern wc) { DBObject u = ((UpdateOpsImpl) ops).getOps(); if (((UpdateOpsImpl) ops).isIsolated()) { Query<T> q = query.clone(); q.disableValidation().filter("$atomic", true); return update(q, u, createIfMissing, multi, wc); } return update(query, u, createIfMissing, multi, wc); }
/** * @param ent * @param ops * @param <T> * @return */ public <T> UpdateResults<T> update(T ent, UpdateOperations<T> ops) { if (ent instanceof Query) return update((Query<T>) ent, ops); MappedClass mc = mapr.getMappedClass(ent); Query<T> q = (Query<T>) createQuery(mc.getClazz()); q.disableValidation().filter(Mapper.ID_KEY, mapr.getId(ent)); if (mc.getFieldsAnnotatedWith(Version.class).size() > 0) { MappedField versionMF = mc.getFieldsAnnotatedWith(Version.class).get(0); Long oldVer = (Long) versionMF.getFieldValue(ent); q.filter(versionMF.getNameToStore(), oldVer); ops.set(versionMF.getNameToStore(), VersionHelper.nextValue(oldVer)); } return update(q, ops); }
/** * @param query * @param entity * @param createIfMissing * @param <T> * @return */ public <T> UpdateResults<T> updateFirst(Query<T> query, T entity, boolean createIfMissing) { LinkedHashMap<Object, DBObject> involvedObjects = new LinkedHashMap<Object, DBObject>(); DBObject dbObj = mapr.toDBObject(entity, involvedObjects); UpdateResults<T> res = update(query, dbObj, createIfMissing, false, getWriteConcern(entity)); //update _id field CommandResult gle = res.getWriteResult().getCachedLastError(); if (gle != null && res.getInsertedCount() > 0) dbObj.put(Mapper.ID_KEY, res.getNewId()); postSaveOperations(entity, dbObj, involvedObjects); return res; }
Object idValue = dbObj.get(Mapper.ID_KEY); UpdateResults<T> res = update(find(dbColl.getName(), (Class<T>) entity.getClass()).filter(Mapper.ID_KEY, idValue).filter(versionKeyName, oldVersion), dbObj, false,
} else { Query<T> query = (Query<T>) createQuery(entity.getClass()).filter(Mapper.ID_KEY, id); wr = update(query, new BasicDBObject("$set", dbObj), false, false, wc).getWriteResult();