码迷,mamicode.com
首页 > 数据库 > 详细

MongoDBTemplate多条件查询的问题

时间:2017-12-04 19:01:14      阅读:230      评论:0      收藏:0      [点我收藏+]

标签:port   int   template   需要   自己   new   作用   多条件   spring   

问题:

在使用Spring Data MongoDB 进行条件查询数据时,发现条件判断不起作用,结果会返回所有的数据。

Criteria criteria = new Criteria();
            criteria.where("shopId")
                    .is(request.getShopId())
                    .and("tradeDate").gte(request.getBeginTradeDate())
                    .lte(request.getEndTradeDate());
            List<ReportInfo> reportInfoList = reportMongoTemplate.
                    find(new Query(criteria), ReportInfo.class,"rept_wallet_refundAndPay");

原因:

经过查看文档和源代码才发现,Criteria的where方法是一个静态工厂方法,它会返回一个实例化的criteria对象,所以就不需要自己new 一个criteria对象了。否则 find(new Query(criteria)里的criteria没有任何判断条件,因此会返回所有的数据。

MongoTemplate 源码

    public static Criteria where(String key) {
        return new Criteria(key);
    }

总结:

还是要看官方的文档和源代码

MongoDBTemplate多条件查询的问题

标签:port   int   template   需要   自己   new   作用   多条件   spring   

原文地址:http://www.cnblogs.com/lanqi/p/7978048.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!