欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

spring boot mogodb多條件拼接的解決方法

 更新時間:2018年08月17日 09:48:50   作者:我們都是和自己賽跑的人!  
這篇文章主要介紹了spring boot mogodb多條件拼接的解決方法,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下

起因

當前我們使用mongodb進行查詢時,有時我們的條件是分塊生成的,它可能來自一個列表里,我們的條件需要根據列表去返回數據,這里有個問題,如果遍歷列表,然后每次都去從mongodb里查詢數據 ,這種性能顯然是不好的,我們需要把條件進行拼接,一次把數據查詢出來!

分析

使用Criteria這個對象去構建查詢條件,使用orOperator來組合多個Criteria實例,最終將列表里所有條件拼接出來,從返回查詢一次即可返回全部數據 。

Criteria[] criterias = criteriaList.toArray(new Criteria[criteriaList.size()]); Criteria criteria = new Criteria(); criteria.orOperator(criterias); Query query = Query.query(criteria);

實現(xiàn)

private List<x> getClients(List<CodeAccountPeriod> codeAccountPeriods) {
 List<Criteria> criteriaList = new ArrayList<>();
  for (CodeAccountPeriod codeAccountPeriod : codeAccountPeriods) {
   criteriaList.add(where("accountPeriod").is(codeAccountPeriod.getAccountPeriod())
     .and("code").is(codeAccountPeriod.getCode())
   );
  }
  Criteria[] criterias = criteriaList.toArray(new Criteria[criteriaList.size()]);
  Criteria criteria = new Criteria();
  criteria.orOperator(criterias);
  Query query = Query.query(criteria);
  List<String> fields = new ArrayList<String>(
    Arrays.asList("accountPeriod", "code", "client", "taxProperty", "version"));
  for (String name : fields) {
   query.fields().include(name);
  }
  List<x> clients = mongoTemplate.find(query, x);
return clients;

有時解決問題的方法可以有多種,我們需要從另一個方面去考慮它。

總結

以上所述是小編給大家介紹的spring boot mogodb多條件拼接的解決方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網站的支持!

相關文章

  • redisson特性及優(yōu)雅實現(xiàn)示例

    redisson特性及優(yōu)雅實現(xiàn)示例

    這篇文章主要為大家介紹了redisson特性及優(yōu)雅實現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-11-11
  • Mybatis中的延遲加載詳細解讀

    Mybatis中的延遲加載詳細解讀

    這篇文章主要介紹了Mybatis中的延遲加載詳細解讀,Mybatis中延遲加載又稱為懶加載,是指在進行關聯(lián)查詢時,按照設置延遲規(guī)則推遲對關聯(lián)對象的select查詢,延遲加載可以有效的減少數據庫的壓力,需要的朋友可以參考下
    2023-10-10
  • Java數據結構之雙端鏈表原理與實現(xiàn)方法

    Java數據結構之雙端鏈表原理與實現(xiàn)方法

    這篇文章主要介紹了Java數據結構之雙端鏈表原理與實現(xiàn)方法,簡單描述了雙端鏈表的概念、原理并結合實例形式分析了java實現(xiàn)雙端鏈表的相關操作技巧,需要的朋友可以參考下
    2017-10-10
  • 使用mybatis報Invalid bound statement解決分析

    使用mybatis報Invalid bound statement解決分析

    這篇文章主要為大家介紹了使用mybatis報Invalid bound statement原因解決分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-12-12
  • 詳解SpringMVC中的@RequestMapping注解

    詳解SpringMVC中的@RequestMapping注解

    這篇文章主要介紹了SpringMVC中@RequestMapping注解,@RequestMapping注解是一個用來處理請求地址映射的注解,可用于映射一個請求或一個方法,可以用在類或方法上,需要的朋友可以參考下
    2023-07-07
  • Java實現(xiàn)二維碼生成的代碼方法

    Java實現(xiàn)二維碼生成的代碼方法

    這篇內容分享了JAVA實現(xiàn)二維碼生成的實例代碼,對此有需要的朋友們可以測試參考下。
    2018-07-07
  • 解決springboot遇到autowire注入為null的問題

    解決springboot遇到autowire注入為null的問題

    這篇文章主要介紹了解決springboot遇到autowire注入為null的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • Java用for循環(huán)Map詳細解析

    Java用for循環(huán)Map詳細解析

    本篇文章主要介紹了Java用for循環(huán)Map,需要的朋友可以過來參考下,希望對大家有所幫助
    2013-12-12
  • IDEA2022搭建Spring?Cloud多模塊項目的詳細過程

    IDEA2022搭建Spring?Cloud多模塊項目的詳細過程

    這篇文章主要介紹了IDEA2022搭建Spring?Cloud多模塊項目,網上有很多教程父模塊都是通過maven的方式創(chuàng)建的,然后子模塊是通過Spring?Initalizr方式創(chuàng)建,這種方式父模塊無法管理子模塊的依賴仲裁,需要每個子模塊自行管理,就失去了父模塊的用處了
    2022-10-10
  • SpringCloud中的路由網關鑒權熔斷詳解

    SpringCloud中的路由網關鑒權熔斷詳解

    這篇文章主要介紹了SpringCloud中的路由網關鑒權熔斷詳解,Hystrix是一個用于處理分布式系統(tǒng)的延遲和容錯的開源庫,在分布式系統(tǒng)里,許多依賴不可避免的會調用失敗,比如超時、異常等,需要的朋友可以參考下
    2024-01-01

最新評論