多个ConfigStore合成一个ConfigStore

最后更新:2024-05-11 05:30:00 | 状态:未完成
在代代码,运行时自定义场景中,经常会调用不同的方法生成多个ConfigStore也就是多组查询条件

但在调用service.querys时只能接收一个ConfigStore
解决方式:


  1. 生成一个ConfigStore
    在合成查询条件时把ConfigStore作为参数输入,通过调用and,or,in等方法把条件添加到ConfigStore中
  2. 如果确实需要多个ConfigStore,比如遇到多个or,and同时出现的情况,可以把每组条件放到一个ConfigStore里相当于放到一个()内
    在最终查询前合成一个
    ConfigStore s1 = new DefaultConfigStore();
    s1.and("id","11").and("id "," 12");
    ConfigStore s2 = new DefaultConfigStore();
    s2.and("id","21").and("id "," 22");
    ConfigStore s3 = new DefaultConfigStore();
    s3.and("id","31").and("id "," 32");
    
    service.querys("CRM_USER", s1.or(s2).and(s3));
    
    生成最终SQL:
    SELECT 
    	*
    FROM
    	CRM_USER
    
    WHERE(
    	(id = 11  AND  id = 12 )
    	OR  
    	(id = 21  AND  id = 22)
        ) 
    AND  
    (id = 31  AND  id = 32)
    当然也有不需要默认加()的情况可以在调用s1.and(s2, false);//false 表示不需要在前面的所有条件上加()
首页 最近更新 搜索 提交 回复