2016-08-15 65 views
2

我想添加多个'和'条件春季数据的标准,但无法弄清楚我做错了什么。 请参考以下代码:如何添加多条件和条件春季数据标准

Criteria criteria = new Criteria(); 
     criteria.andOperator(Criteria.where("siteCode").is(siteCode)); 

     if(paymentMode != null) { 
      criteria.andOperator(Criteria.where("paymentMode").is(paymentMode)); 
     } 
     if(planCode != null) { 
      criteria.andOperator(Criteria.where("packageCode").is(planCode)); 
     } 
     if(status){ 
      criteria.andOperator(Criteria.where("expiryDateTime").gt(new Date())); 
     } else { 
      criteria.andOperator(Criteria.where("expiryDateTime").lte(new Date())); 
     } 

     Query query = new Query(criteria); 

     List<UserPackage> userPackageList = mongoTemplate.find(query, UserPackage.class); 
+0

你是什么意思?你在那里和你在哪里? –

+0

例如:如果planCode不为空,那么它应该被添加到标准 Criteria.where(“siteCode”)。is(siteCode).and(“planCode”)。is(planCode)。 –

+0

所以,你只需要知道在java中AND(&&)运算符是什么? –

回答

3

我发现我做错了。你不需要在里面使用方法'andOperator'和另一个Criteria。

它只是通过使用'和'方法工作,然后链接你想使用的以下操作符方法。

分享工作解决方案,以帮助像我这样的新人。

 Criteria criteria = new Criteria(); 
     criteria = criteria.and("siteCode").is(siteCode); 
     if (paymentMode != null) { 
      criteria = criteria.and("paymentMode").is(paymentMode); 
     } 
     if (planCode != null) { 
      criteria = criteria.and("packageCode").is(planCode); 
     } 
     if (status) { 
      criteria = criteria.and("expiryDateTime").gt(new Date()); 
     } else { 
      criteria = criteria.and("expiryDateTime").lte(new Date()); 
     } 
     Query query = new Query(criteria); 
+1

很棒分享:) – davidxxx