/**
* mongodb拼装查询条件工具类
* @author lw
*/
@Component
public class MongoUtils {
@Autowired
MongoTemplate mongoTemplate;
/**
* 由于需要获得Field信息,请将Field设为public,不要设置为私有
* @param search 查询封装类
* @param t 查询得到的实体类
* @return 查询结果
*/
public <T> List<T> findAll(Object search, Class<T> t){
Criteria criteria = new Criteria();
Field [] fields=search.getClass().getFields();
for(Field field:fields){
Object o=ReflectionUtils.getField(field,search);
if(!StringUtils.isEmpty(o)){
criteria.and(field.getName()).is(o);
}
}
Query query = new Query(criteria);
return mongoTemplate.find(query,t);
}
}
如果有其他查询条件(如all,in),可以使用注解的方式来实现,目前未遇到所以没有实现