Java 从列表休眠生成查询<;标准>;具有or运算符和动态限制

Java 从列表休眠生成查询<;标准>;具有or运算符和动态限制,java,spring,hibernate,restrictions,criterion,Java,Spring,Hibernate,Restrictions,Criterion,我有一个列表,根据某些条件以编程方式提供,代码如下所示: List<Criterion> restrictionList = new ArrayList<Criterion>(); for(int i = 1; i<someconditions.length);i++){ if( condition1){ restrictionList.add(...); } else if(condit

我有一个列表,根据某些条件以编程方式提供,代码如下所示:

 List<Criterion> restrictionList = new ArrayList<Criterion>();
 for(int i = 1; i<someconditions.length);i++){          
        if( condition1){
           restrictionList.add(...);
        } else if(condition2){                      
           restrictionList.add(...)
        } else if(condition3){
            restrictionList.add(...)                
        }                   
    }       
List restrictionList=new ArrayList();
对于(int i=1;i
if(!restrictionList.isEmpty()){
标准添加(或(限制列表));
}
私有析取或(列表限制){
析取结果=限制。析取();
对于(标准限制:限制){
结果。添加(限制);
}
返回结果;
}  
如果(!restrictionList.isEmpty()){
标准添加(或(限制列表));
}
私有析取或(列表限制){
析取结果=限制。析取();
对于(标准限制:限制){
结果。添加(限制);
}
返回结果;
}  

对不起,您的问题是什么?关于“部分结果未显示”-您能举例说明显示什么和不显示什么吗?@ViacheslavVedenin对不起,我不够清楚。我用更多细节编辑了问题,如果您需要其他澄清,请告诉我。对不起,您的问题是什么?关于“一些结果没有显示出来"-你能举个例子说明什么是表演什么不是吗?@ViacheslavVedenin抱歉我不够清楚。我用更多细节编辑了这个问题,如果你需要其他澄清,请告诉我。太好了!谢谢你的快速回答,它完全符合我的需要完美了!谢谢你完美了!谢谢你的快速回答,它完全符合我的需要完美了!非常感谢。
for (int c = 0; c < restrictionList.size()-1;c++){
    crit.add(Restrictions.or(restrictionList.get(c),restrictionList.get(c+1)));
}
if (!restrictionList.isEmpty()) {
    crit.add(or(restrictionList));
}

private Disjunction or(List<Criterion> restrictions) {
    Disjunction result = Restrictions.disjunction();

    for(Criterion restriction : restrictions) {
        result.add(restriction);
    }

    return result;
}