Browse Source

revorked MongoTemplate to use Query object

pull/1/head
Thomas Risberg 15 years ago
parent
commit
ef2ddad903
  1. 19
      src/main/java/org/springframework/datastore/document/mongodb/MongoTemplate.java

19
src/main/java/org/springframework/datastore/document/mongodb/MongoTemplate.java

@ -25,10 +25,8 @@ import org.springframework.dao.InvalidDataAccessApiUsageException;
import org.springframework.datastore.document.AbstractDocumentStoreTemplate; import org.springframework.datastore.document.AbstractDocumentStoreTemplate;
import org.springframework.datastore.document.DocumentMapper; import org.springframework.datastore.document.DocumentMapper;
import org.springframework.datastore.document.DocumentSource; import org.springframework.datastore.document.DocumentSource;
import org.springframework.datastore.document.InvalidDocumentStoreApiUageException; import org.springframework.datastore.document.mongodb.query.Query;
import org.springframework.util.Assert;
import com.mongodb.BasicDBObject;
import com.mongodb.CommandResult; import com.mongodb.CommandResult;
import com.mongodb.DB; import com.mongodb.DB;
import com.mongodb.DBCollection; import com.mongodb.DBCollection;
@ -109,21 +107,12 @@ public class MongoTemplate extends AbstractDocumentStoreTemplate<DB> {
return results; return results;
} }
public <T> List<T> queryForList(String collectionName, String fieldName, String[] operands, Object[] values, Class<T> targetClass) { public <T> List<T> queryForList(String collectionName, Query query, Class<T> targetClass) {
DocumentMapper<DBObject, T> mapper = MongoBeanPropertyDocumentMapper.newInstance(targetClass); DocumentMapper<DBObject, T> mapper = MongoBeanPropertyDocumentMapper.newInstance(targetClass);
return queryForList(collectionName, fieldName, operands, values, mapper); return queryForList(collectionName, query, mapper);
} }
public <T> List<T> queryForList(String collectionName, String fieldName, String[] operands, Object[] values, DocumentMapper<DBObject, T> mapper) { public <T> List<T> queryForList(String collectionName, Query query, DocumentMapper<DBObject, T> mapper) {
if (operands.length != values.length) {
throw new InvalidDocumentStoreApiUageException("The number of operands and values must match");
}
DBObject query = new BasicDBObject();
DBObject condition = new BasicDBObject();
for (int i = 0; i < operands.length; i++) {
condition.put(operands[i], values[i]);
}
query.put(fieldName, condition);
return queryForList(collectionName, query, mapper); return queryForList(collectionName, query, mapper);
} }

Loading…
Cancel
Save