Example usage for org.hibernate.criterion Restrictions disjunction

List of usage examples for org.hibernate.criterion Restrictions disjunction

Introduction

In this page you can find the example usage for org.hibernate.criterion Restrictions disjunction.

Prototype

public static Disjunction disjunction() 

Source Link

Document

Group expressions together in a single disjunction (A or B or C...).

Usage

From source file:org.codehaus.groovy.grails.orm.hibernate.metaclass.CountByPersistentMethod.java

License:Apache License

@SuppressWarnings({ "unchecked", "rawtypes" })
protected void populateCriteriaWithExpressions(Criteria crit, String operator, List expressions) {
    if (operator.equals(OPERATOR_OR)) {
        Disjunction dis = Restrictions.disjunction();
        for (GrailsMethodExpression current : (List<GrailsMethodExpression>) expressions) {
            dis.add(current.getCriterion());
        }// w w w . j  a v  a2s .c  om
        crit.add(dis);
    } else {
        for (GrailsMethodExpression current : (List<GrailsMethodExpression>) expressions) {
            crit.add(current.getCriterion());
        }
    }
}

From source file:org.codehaus.groovy.grails.orm.hibernate.metaclass.FindAllByPersistentMethod.java

License:Apache License

@SuppressWarnings("rawtypes")
@Override// w  w  w . j av a  2 s  .  com
protected Object doInvokeInternalWithExpressions(final Class clazz, String methodName, final Object[] arguments,
        final List expressions, String operatorInUse, final Closure additionalCriteria) {

    final String operator = OPERATOR_OR.equals(operatorInUse) ? OPERATOR_OR : OPERATOR_AND;
    return getHibernateTemplate().executeFind(new HibernateCallback<Object>() {
        public Object doInHibernate(Session session) throws HibernateException, SQLException {

            final Criteria c = getCriteria(application, session, additionalCriteria, clazz);
            Map argsMap = (arguments.length > 0 && (arguments[0] instanceof Map)) ? (Map) arguments[0]
                    : Collections.EMPTY_MAP;
            GrailsHibernateUtil.populateArgumentsForCriteria(application, clazz, c, argsMap);

            if (operator.equals(OPERATOR_OR)) {
                Disjunction dis = Restrictions.disjunction();
                for (Object expression : expressions) {
                    GrailsMethodExpression current = (GrailsMethodExpression) expression;
                    if (GrailsMethodExpression.FORCE_NO_RESULTS != current.getCriterion()) {
                        dis.add(current.getCriterion());
                    }
                }
                c.add(dis);
            } else {
                for (Object expression : expressions) {
                    GrailsMethodExpression current = (GrailsMethodExpression) expression;
                    if (GrailsMethodExpression.FORCE_NO_RESULTS == current.getCriterion()) {
                        return Collections.emptyList();
                    }
                    c.add(current.getCriterion());
                }
            }

            c.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);
            return c.list();
        }
    });
}

From source file:org.codehaus.groovy.grails.orm.hibernate.query.AbstractHibernateCriterionAdapter.java

License:Apache License

protected void addJunctionCriterionAdapters() {
    criterionAdaptors.put(Query.Conjunction.class, new CriterionAdaptor<Query.Conjunction>() {
        @Override//from  w  ww. ja  v a2  s.  c o  m
        public Criterion toHibernateCriterion(AbstractHibernateQuery hibernateQuery,
                Query.Conjunction criterion, String alias) {
            Conjunction conjunction = Restrictions.conjunction();
            applySubCriteriaToJunction(hibernateQuery.getEntity(), hibernateQuery, criterion.getCriteria(),
                    conjunction, alias);
            return conjunction;
        }
    });
    criterionAdaptors.put(Query.Disjunction.class, new CriterionAdaptor<Query.Disjunction>() {
        @Override
        public Criterion toHibernateCriterion(AbstractHibernateQuery hibernateQuery,
                Query.Disjunction criterion, String alias) {
            Disjunction disjunction = Restrictions.disjunction();
            applySubCriteriaToJunction(hibernateQuery.getEntity(), hibernateQuery, criterion.getCriteria(),
                    disjunction, alias);
            return disjunction;
        }
    });
    criterionAdaptors.put(Query.Negation.class, new CriterionAdaptor<Query.Negation>() {
        @Override
        public Criterion toHibernateCriterion(AbstractHibernateQuery hibernateQuery, Query.Negation criterion,
                String alias) {
            CriterionAdaptor<Query.Disjunction> adapter = (CriterionAdaptor<Query.Disjunction>) criterionAdaptors
                    .get(Query.Disjunction.class);
            return Restrictions.not(adapter.toHibernateCriterion(hibernateQuery,
                    new Query.Disjunction(criterion.getCriteria()), alias));
        }
    });
}

From source file:org.codehaus.groovy.grails.orm.hibernate.query.AbstractHibernateQuery.java

License:Apache License

@Override
public Junction disjunction() {
    final org.hibernate.criterion.Disjunction disjunction = Restrictions.disjunction();
    addToCriteria(disjunction);/*w ww .  jav  a  2  s . c o m*/
    return new HibernateJunction(disjunction, alias);
}

From source file:org.codehaus.groovy.grails.orm.hibernate.query.AbstractHibernateQuery.java

License:Apache License

@Override
public Junction negation() {
    final org.hibernate.criterion.Disjunction disjunction = Restrictions.disjunction();
    addToCriteria(Restrictions.not(disjunction));
    return new HibernateJunction(disjunction, alias);
}

From source file:org.codehaus.groovy.grails.orm.hibernate.query.HibernateQuery.java

License:Apache License

@Override
public Junction disjunction() {
    final org.hibernate.criterion.Disjunction disjunction = Restrictions.disjunction();
    criteria.add(disjunction);/*from   www  .  ja v a  2s .com*/
    return new HibernateJunction(disjunction);
}

From source file:org.codehaus.groovy.grails.orm.hibernate.query.HibernateQuery.java

License:Apache License

@Override
public Junction negation() {
    final org.hibernate.criterion.Disjunction disjunction = Restrictions.disjunction();
    criteria.add(Restrictions.not(disjunction));
    return new HibernateJunction(disjunction);
}

From source file:org.davidmendoza.irsvped.dao.impl.EventDaoHibernate.java

License:Open Source License

@Transactional(readOnly = true)
@Override/*from   ww  w  . j a  v  a 2s  . c  o  m*/
public Map<String, Object> list(Map<String, Object> params) {
    log.debug("Event list");
    Criteria criteria = currentSession().createCriteria(Event.class);
    Criteria countCriteria = currentSession().createCriteria(Event.class);
    if (params.containsKey("filter")) {
        String filter = (String) params.get("filter");
        criteria.createAlias("user", "user_alias");
        countCriteria.createAlias("user", "user_alias");
        Disjunction properties = Restrictions.disjunction();
        properties.add(Restrictions.ilike("code", filter, MatchMode.ANYWHERE));
        properties.add(Restrictions.ilike("name", filter, MatchMode.ANYWHERE));
        properties.add(Restrictions.ilike("description", filter, MatchMode.ANYWHERE));
        properties.add(Restrictions.ilike("street", filter, MatchMode.ANYWHERE));
        properties.add(Restrictions.ilike("city", filter, MatchMode.ANYWHERE));
        properties.add(Restrictions.ilike("zip", filter, MatchMode.ANYWHERE));
        properties.add(Restrictions.ilike("hostName", filter, MatchMode.ANYWHERE));
        properties.add(Restrictions.ilike("hostPhone", filter, MatchMode.ANYWHERE));
        properties.add(Restrictions.ilike("hostEmail", filter, MatchMode.ANYWHERE));
        properties.add(Restrictions.ilike("user_alias.username", filter, MatchMode.ANYWHERE));
        properties.add(Restrictions.ilike("user_alias.firstName", filter, MatchMode.ANYWHERE));
        properties.add(Restrictions.ilike("user_alias.lastName", filter, MatchMode.ANYWHERE));
        criteria.add(properties);
        countCriteria.add(properties);
    }
    if (params.containsKey("mine")) {
        String principal = (String) params.get("principal");
        Criteria a = criteria.createCriteria("user");
        a.add(Restrictions.eq("username", principal));
    }
    if (params.containsKey("max")) {
        criteria.setMaxResults((Integer) params.get("max"));
        if (params.containsKey("offset")) {
            criteria.setFirstResult((Integer) params.get("offset"));
        }
    }
    if (params.containsKey("sort")) {
        if (((String) params.get("order")).equals("desc")) {
            criteria.addOrder(Order.desc((String) params.get("sort")));
            params.put("order", "asc");
        } else {
            criteria.addOrder(Order.asc((String) params.get("sort")));
            params.put("order", "desc");
        }
    }
    params.put("list", criteria.list());
    countCriteria.setProjection(Projections.rowCount());
    params.put("totalItems", countCriteria.list().get(0));
    return params;

}

From source file:org.davidmendoza.irsvped.dao.impl.MessageDaoHibernate.java

License:Open Source License

@Transactional(readOnly = true)
@Override//from  w w w.java  2  s  .co m
public Map<String, Object> list(Map<String, Object> params) {
    log.debug("Message list");
    Criteria criteria = currentSession().createCriteria(Message.class);
    Criteria countCriteria = currentSession().createCriteria(Message.class);
    if (params.containsKey("filter")) {
        String filter = (String) params.get("filter");
        Disjunction properties = Restrictions.disjunction();
        properties.add(Restrictions.ilike("name", filter, MatchMode.ANYWHERE));
        properties.add(Restrictions.ilike("subject", filter, MatchMode.ANYWHERE));
        properties.add(Restrictions.ilike("content", filter, MatchMode.ANYWHERE));
        criteria.add(properties);
        countCriteria.add(properties);
    }
    if (params.containsKey("max")) {
        criteria.setMaxResults((Integer) params.get("max"));
        if (params.containsKey("offset")) {
            criteria.setFirstResult((Integer) params.get("offset"));
        }
    }
    if (params.containsKey("sort")) {
        if (((String) params.get("order")).equals("desc")) {
            criteria.addOrder(Order.desc((String) params.get("sort")));
            params.put("order", "asc");
        } else {
            criteria.addOrder(Order.asc((String) params.get("sort")));
            params.put("order", "desc");
        }
    }
    params.put("list", criteria.list());
    countCriteria.setProjection(Projections.rowCount());
    if (!countCriteria.list().isEmpty()) {
        params.put("totalItems", countCriteria.list().get(0));
    } else {
        params.put("totalItems", 0L);
    }
    return params;

}

From source file:org.davidmendoza.irsvped.dao.impl.UserDaoHibernate.java

License:Open Source License

@Transactional(readOnly = true)
@Override//from  w ww  .  ja va  2  s  . c  o  m
public Map<String, Object> list(Map<String, Object> params) {
    log.debug("User list");
    Criteria criteria = currentSession().createCriteria(User.class);
    Criteria countCriteria = currentSession().createCriteria(User.class);
    if (params.containsKey("filter")) {
        String filter = (String) params.get("filter");
        Disjunction properties = Restrictions.disjunction();
        properties.add(Restrictions.ilike("username", filter, MatchMode.ANYWHERE));
        properties.add(Restrictions.ilike("firstName", filter, MatchMode.ANYWHERE));
        properties.add(Restrictions.ilike("lastName", filter, MatchMode.ANYWHERE));
        criteria.add(properties);
        countCriteria.add(properties);
    }
    if (params.containsKey("max")) {
        criteria.setMaxResults((Integer) params.get("max"));
        if (params.containsKey("offset")) {
            criteria.setFirstResult((Integer) params.get("offset"));
        }
    }
    if (params.containsKey("sort")) {
        if (((String) params.get("order")).equals("desc")) {
            criteria.addOrder(Order.desc((String) params.get("sort")));
            params.put("order", "asc");
        } else {
            criteria.addOrder(Order.asc((String) params.get("sort")));
            params.put("order", "desc");
        }
    }
    params.put("list", criteria.list());
    countCriteria.setProjection(Projections.rowCount());
    params.put("totalItems", countCriteria.list().get(0));
    return params;
}