How do you “OR” criteria together when using a criteria query with hibernate?

前端 未结 8 928
终归单人心
终归单人心 2020-12-04 07:44

I\'m trying to do a basic \"OR\" on three fields using a hibernate criteria query.

Example

class Whatever{
 string name;
 string address;
 string pho         


        
8条回答
  •  忘掉有多难
    2020-12-04 08:14

    The conditions can be applied using the or / and in different levels of the query using disjunction

    Criteria query = getCriteria("ENTITY_NAME");
    query.add(Restrictions.ne("column Name", current _value));
    
    Disjunction disjunction = Restrictions.disjunction();
    
    if (param_1 != null)
        disjunction.add(Restrictions.or(Restrictions.eq("column Name", param1)));
    
    if (param_2 != null)
        disjunction.add(Restrictions.or(Restrictions.eq("column Name", param_2)));
    
    if (param_3 != null)
        disjunction.add(Restrictions.or(Restrictions.eq("column Name", param_3)));
    if (param_4 != null && param_5 != null)
        disjunction.add(Restrictions.or(Restrictions.and(Restrictions.eq("column Name", param_4 ), Restrictions.eq("column Name", param_5 ))));
    
    if (disjunction.conditions() != null && disjunction.conditions().iterator().hasNext())
        query.add(Restrictions.and(disjunction));
    
    return query.list();
    

提交回复
热议问题