Example usage for org.springframework.data.mongodb.core MongoAction MongoAction

List of usage examples for org.springframework.data.mongodb.core MongoAction MongoAction

Introduction

In this page you can find the example usage for org.springframework.data.mongodb.core MongoAction MongoAction.

Prototype

public MongoAction(@Nullable WriteConcern defaultWriteConcern, MongoActionOperation mongoActionOperation,
        String collectionName, @Nullable Class<?> entityType, @Nullable Document document,
        @Nullable Document query) 

Source Link

Document

Create an instance of a MongoAction .

Usage

From source file:org.springframework.data.mongodb.core.MongoTemplate.java

protected Object insertDBObject(final String collectionName, final DBObject dbDoc, final Class<?> entityClass) {
    if (LOGGER.isDebugEnabled()) {
        LOGGER.debug(/*from  w ww. j av  a2s  .com*/
                "insert DBObject containing fields: " + dbDoc.keySet() + " in collection: " + collectionName);
    }
    return execute(collectionName, new CollectionCallback<Object>() {
        public Object doInCollection(DBCollection collection) throws MongoException, DataAccessException {
            MongoAction mongoAction = new MongoAction(writeConcern, MongoActionOperation.INSERT, collectionName,
                    entityClass, dbDoc, null);
            WriteConcern writeConcernToUse = prepareWriteConcern(mongoAction);
            WriteResult wr;
            if (writeConcernToUse == null) {
                wr = collection.insert(dbDoc);
            } else {
                wr = collection.insert(dbDoc, writeConcernToUse);
            }
            handleAnyWriteResultErrors(wr, dbDoc, "insert");
            return dbDoc.get(ID);
        }
    });
}

From source file:org.springframework.data.mongodb.core.MongoTemplate.java

protected List<ObjectId> insertDBObjectList(final String collectionName, final List<DBObject> dbDocList) {
    if (dbDocList.isEmpty()) {
        return Collections.emptyList();
    }//from   w ww.j a v a2s.  c om

    if (LOGGER.isDebugEnabled()) {
        LOGGER.debug("insert list of DBObjects containing " + dbDocList.size() + " items");
    }
    execute(collectionName, new CollectionCallback<Void>() {
        public Void doInCollection(DBCollection collection) throws MongoException, DataAccessException {
            MongoAction mongoAction = new MongoAction(writeConcern, MongoActionOperation.INSERT_LIST,
                    collectionName, null, null, null);
            WriteConcern writeConcernToUse = prepareWriteConcern(mongoAction);
            WriteResult wr;
            if (writeConcernToUse == null) {
                wr = collection.insert(dbDocList);
            } else {
                wr = collection.insert(dbDocList.toArray((DBObject[]) new BasicDBObject[dbDocList.size()]),
                        writeConcernToUse);
            }
            handleAnyWriteResultErrors(wr, null, "insert_list");
            return null;
        }
    });

    List<ObjectId> ids = new ArrayList<ObjectId>();
    for (DBObject dbo : dbDocList) {
        Object id = dbo.get(ID);
        if (id instanceof ObjectId) {
            ids.add((ObjectId) id);
        } else {
            // no id was generated
            ids.add(null);
        }
    }
    return ids;
}

From source file:org.springframework.data.mongodb.core.MongoTemplate.java

protected Object saveDBObject(final String collectionName, final DBObject dbDoc, final Class<?> entityClass) {
    if (LOGGER.isDebugEnabled()) {
        LOGGER.debug("save DBObject containing fields: " + dbDoc.keySet());
    }/*  w w w.  j  a v  a  2 s. co  m*/
    return execute(collectionName, new CollectionCallback<Object>() {
        public Object doInCollection(DBCollection collection) throws MongoException, DataAccessException {
            MongoAction mongoAction = new MongoAction(writeConcern, MongoActionOperation.SAVE, collectionName,
                    entityClass, dbDoc, null);
            WriteConcern writeConcernToUse = prepareWriteConcern(mongoAction);
            WriteResult wr;
            if (writeConcernToUse == null) {
                wr = collection.save(dbDoc);
            } else {
                wr = collection.save(dbDoc, writeConcernToUse);
            }
            handleAnyWriteResultErrors(wr, dbDoc, "save");
            return dbDoc.get(ID);
        }
    });
}

From source file:org.springframework.data.mongodb.core.MongoTemplate.java

protected WriteResult doUpdate(final String collectionName, final Query query, final Update update,
        final Class<?> entityClass, final boolean upsert, final boolean multi) {

    return execute(collectionName, new CollectionCallback<WriteResult>() {
        public WriteResult doInCollection(DBCollection collection) throws MongoException, DataAccessException {

            MongoPersistentEntity<?> entity = entityClass == null ? null : getPersistentEntity(entityClass);

            DBObject queryObj = query == null ? new BasicDBObject()
                    : mapper.getMappedObject(query.getQueryObject(), entity);
            DBObject updateObj = update.getUpdateObject();

            for (String key : updateObj.keySet()) {
                updateObj.put(key, mongoConverter.convertToMongoType(updateObj.get(key)));
            }//from   ww w . j  a  v  a  2 s. c o  m

            if (LOGGER.isDebugEnabled()) {
                LOGGER.debug("calling update using query: " + queryObj + " and update: " + updateObj
                        + " in collection: " + collectionName);
            }

            WriteResult wr;
            MongoAction mongoAction = new MongoAction(writeConcern, MongoActionOperation.UPDATE, collectionName,
                    entityClass, updateObj, queryObj);
            WriteConcern writeConcernToUse = prepareWriteConcern(mongoAction);
            if (writeConcernToUse == null) {
                wr = collection.update(queryObj, updateObj, upsert, multi);
            } else {
                wr = collection.update(queryObj, updateObj, upsert, multi, writeConcernToUse);
            }
            handleAnyWriteResultErrors(wr, queryObj, "update with '" + updateObj + "'");
            return wr;
        }
    });
}

From source file:org.springframework.data.mongodb.core.MongoTemplate.java

protected <T> void doRemove(final String collectionName, final Query query, final Class<T> entityClass) {
    if (query == null) {
        throw new InvalidDataAccessApiUsageException("Query passed in to remove can't be null");
    }/*from  w  w  w .ja v a2  s.c o  m*/
    final DBObject queryObject = query.getQueryObject();
    final MongoPersistentEntity<?> entity = getPersistentEntity(entityClass);
    execute(collectionName, new CollectionCallback<Void>() {
        public Void doInCollection(DBCollection collection) throws MongoException, DataAccessException {
            DBObject dboq = mapper.getMappedObject(queryObject, entity);
            WriteResult wr = null;
            MongoAction mongoAction = new MongoAction(writeConcern, MongoActionOperation.REMOVE, collectionName,
                    entityClass, null, queryObject);
            WriteConcern writeConcernToUse = prepareWriteConcern(mongoAction);
            if (LOGGER.isDebugEnabled()) {
                LOGGER.debug("remove using query: " + dboq + " in collection: " + collection.getName());
            }
            if (writeConcernToUse == null) {
                wr = collection.remove(dboq);
            } else {
                wr = collection.remove(dboq, writeConcernToUse);
            }
            handleAnyWriteResultErrors(wr, dboq, "remove");
            return null;
        }
    });
}