Example usage for org.hibernate.criterion Restrictions or

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

Introduction

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

Prototype

public static LogicalExpression or(Criterion lhs, Criterion rhs) 

Source Link

Document

Return the disjuction of two expressions

Usage

From source file:com.lushapp.modules.sys.web.UserController.java

License:Apache License

/**
 * combogrid/*from  www .  j a  v a2s  .  co m*/
 *
 * @return
 * @throws Exception
 */
@RequestMapping(value = { "combogrid" })
@ResponseBody
public Datagrid<User> combogrid(@RequestParam(value = "ids", required = false) List<Long> ids,
        String loginNameOrName, Integer rows) throws Exception {
    Criterion statusCriterion = Restrictions.eq("status", StatusState.normal.getValue());
    Criterion[] criterions = new Criterion[0];
    criterions = (Criterion[]) ArrayUtils.add(criterions, 0, statusCriterion);
    Criterion criterion = null;
    if (Collections3.isNotEmpty(ids)) {
        //in?
        Criterion inCriterion = Restrictions.in("id", ids);

        if (StringUtils.isNotBlank(loginNameOrName)) {
            Criterion loginNameCriterion = Restrictions.like("loginName", loginNameOrName, MatchMode.ANYWHERE);
            Criterion nameCriterion = Restrictions.like("name", loginNameOrName, MatchMode.ANYWHERE);
            Criterion criterion1 = Restrictions.or(loginNameCriterion, nameCriterion);
            criterion = Restrictions.or(inCriterion, criterion1);
        } else {
            criterion = inCriterion;
        }
        //??
        criterions = (Criterion[]) ArrayUtils.add(criterions, 0, criterion);
    } else {
        if (StringUtils.isNotBlank(loginNameOrName)) {
            Criterion loginNameCriterion = Restrictions.like("loginName", loginNameOrName, MatchMode.ANYWHERE);
            Criterion nameCriterion = Restrictions.like("name", loginNameOrName, MatchMode.ANYWHERE);
            criterion = Restrictions.or(loginNameCriterion, nameCriterion);
            //??
            criterions = (Criterion[]) ArrayUtils.add(criterions, 0, criterion);
        }
    }

    //
    Page<User> p = new Page<User>(rows);//
    p = userManager.findByCriteria(p, criterions);
    Datagrid<User> dg = new Datagrid<User>(p.getTotalCount(), p.getResult());
    return dg;
}

From source file:com.mercatis.lighthouse3.persistence.events.hibernate.EventRegistryImplementation.java

License:Apache License

/**
 * This method generates criteria for a given event template that also
 * contain an ordering clause on the date of occurrence.
 * //from   www  . ja v  a  2 s .  com
 * @param session
 *            the Hibernate session to use for criteria generation
 * @param entityTemplate
 *            the template for which to generate the criteria
 * @param descending
 *            <code>true</code> if descending order is wanted (the default)
 *            or <code>false</code> for ascending order.
 * @return
 */
public Criteria generateOrderingCriteria(Session session, Event entityTemplate, boolean descending) {
    Criteria criteria = super.entityToCriteria(session, entityTemplate);

    if (entityTemplate.getContext() != null) {
        if (!Ranger.isEnumerationRange(entityTemplate.getContext()))
            criteria.add(Restrictions.eq("context", entityTemplate.getContext()));
        else
            criteria.add(Restrictions.in("context",
                    Ranger.castToEnumerationRange(entityTemplate.getContext()).getEnumeration()));

    }

    if (entityTemplate.getCode() != null) {
        if (!Ranger.isEnumerationRange(entityTemplate.getCode()))
            criteria.add(Restrictions.eq("code", entityTemplate.getCode()));
        else
            criteria.add(Restrictions.in("code",
                    Ranger.castToEnumerationRange(entityTemplate.getCode()).getEnumeration()));

    }

    if (entityTemplate.getLevel() != null) {
        if (!Ranger.isEnumerationRange(entityTemplate.getLevel()))
            criteria.add(Restrictions.eq("level", entityTemplate.getLevel()));
        else
            criteria.add(Restrictions.in("level",
                    Ranger.castToEnumerationRange(entityTemplate.getLevel()).getEnumeration()));
    }

    if (entityTemplate.getMachineOfOrigin() != null)
        criteria.add(Restrictions.eq("machineOfOrigin", entityTemplate.getMachineOfOrigin()));

    if (entityTemplate.getMessage() != null) {
        criteria.add(Restrictions.ilike("message", "%" + entityTemplate.getMessage() + "%"));
    }

    if (entityTemplate.getStackTrace() != null) {
        if (this.unitOfWork.getSqlDialect() instanceof org.hibernate.dialect.MySQL5InnoDBDialect)
            criteria.add(Restrictions.sqlRestriction("match ({alias}.STACK_TRACE) against (?)",
                    entityTemplate.getStackTrace(), StringType.INSTANCE));
        else
            criteria.add(Restrictions.ilike("stackTrace", "%" + entityTemplate.getStackTrace() + "%"));
    }

    if (entityTemplate.getDateOfOccurrence() != null) {
        if (!Ranger.isIntervalRange(entityTemplate.getDateOfOccurrence())) {
            criteria.add(Restrictions.eq("dateOfOccurrence", entityTemplate.getDateOfOccurrence()));
        } else {
            Date lowerBound = Ranger.castToIntervalRange(entityTemplate.getDateOfOccurrence()).getLowerBound();
            Date upperBound = Ranger.castToIntervalRange(entityTemplate.getDateOfOccurrence()).getUpperBound();

            if ((lowerBound == null) && (upperBound != null))
                criteria.add(Restrictions.le("dateOfOccurrence", upperBound));
            else if ((lowerBound != null) && (upperBound == null))
                criteria.add(Restrictions.ge("dateOfOccurrence", lowerBound));
            else if ((lowerBound != null) && (upperBound != null)) {
                criteria.add(Restrictions.le("dateOfOccurrence", upperBound));
                criteria.add(Restrictions.ge("dateOfOccurrence", lowerBound));
            }
        }
    }

    if (!entityTemplate.getTransactionIds().isEmpty()) {
        Set<Criterion> transactionRestrictions = new HashSet<Criterion>();
        for (String transactionId : entityTemplate.getTransactionIds())
            transactionRestrictions.add(Restrictions.sqlRestriction(
                    "exists (select lti.* from EVENT_TRANSACTION_IDS lti where {alias}.EVT_ID = lti.EVT_ID and lti.TRANSACTION_ID = ?)",
                    transactionId, StringType.INSTANCE));

        if (transactionRestrictions.size() == 1) {
            criteria.add(transactionRestrictions.iterator().next());
        } else {
            Iterator<Criterion> restrictions = transactionRestrictions.iterator();
            Criterion orCriterion = restrictions.next();

            while (restrictions.hasNext()) {
                orCriterion = Restrictions.or(orCriterion, restrictions.next());
            }

            criteria.add(orCriterion);
        }
    }

    for (String tag : entityTemplate.getTags())
        criteria.add(Restrictions.sqlRestriction(
                "exists (select lt.* from EVENT_TAGS lt where {alias}.EVT_ID = lt.EVT_ID and lt.TAG = ?)", tag,
                StringType.INSTANCE));

    for (String udf : entityTemplate.getUdfs().keySet()) {
        Object value = entityTemplate.getUdf(udf);

        if (udf.equals("eventRESTResourceLimitRestriction")) {
            criteria.setMaxResults((Integer) value);
            break;
        }

        String columnName = "";
        Type valueType = StringType.INSTANCE;

        if (value instanceof Boolean) {
            columnName = "BOOLEAN_VAL";
            valueType = BooleanType.INSTANCE;
        }

        if (value instanceof Integer) {
            columnName = "INTEGER_VAL";
            valueType = IntegerType.INSTANCE;
        }

        if (value instanceof Long) {
            columnName = "LONG_VAL";
            valueType = LongType.INSTANCE;
        }

        if (value instanceof Float) {
            columnName = "FLOAT_VAL";
            valueType = FloatType.INSTANCE;
        }

        if (value instanceof Double) {
            columnName = "DOUBLE_VAL";
            valueType = DoubleType.INSTANCE;
        }

        if (value instanceof Date) {
            columnName = "DATE_VAL";
            valueType = DateType.INSTANCE;
        }

        if (value instanceof byte[]) {
            columnName = "BINARY_VAL";
            valueType = BlobType.INSTANCE;
        }

        if (value instanceof String) {
            columnName = "STRING_VAL";
            valueType = StringType.INSTANCE;
        }

        criteria.add(Restrictions.sqlRestriction(
                "exists (select lu.* from EVENT_UDFS lu where {alias}.EVT_ID = lu.EVT_ID and lu.UDF = ? and lu."
                        + columnName + " = ?)",
                new Object[] { udf, value }, new Type[] { StringType.INSTANCE, valueType }));

    }

    if (descending)
        criteria.addOrder(Order.desc("dateOfOccurrence"));
    else
        criteria.addOrder(Order.asc("dateOfOccurrence"));

    return criteria;
}

From source file:com.mycompany.thymeleafspringapp.dao.UsersDAOImpl.java

@Override
public Users getUserByName(String username) {
    Criteria crit = sessionFactory.openSession().createCriteria(Users.class);
    crit.add(Restrictions.or(Restrictions.eq("email", username), Restrictions.eq("username", username)));
    crit.setMaxResults(1);/*from   w  w w .  j a v a  2s .  c om*/
    return (Users) crit.list().get(0);

}

From source file:com.ourlife.dev.modules.sys.service.SystemService.java

License:Open Source License

public Page<User> findUser(Page<User> page, User user) {
    DetachedCriteria dc = userDao.createDetachedCriteria();
    User currentUser = UserUtils.getUser();
    dc.createAlias("company", "company");
    if (user.getCompany() != null && user.getCompany().getId() != null) {
        dc.add(Restrictions.or(Restrictions.eq("company.id", user.getCompany().getId()),
                Restrictions.like("company.parentIds", "%," + user.getCompany().getId() + ",%")));
    }/*from www.  j  a  v  a2 s .c  o  m*/
    dc.createAlias("office", "office");
    if (user.getOffice() != null && user.getOffice().getId() != null) {
        dc.add(Restrictions.or(Restrictions.eq("office.id", user.getOffice().getId()),
                Restrictions.like("office.parentIds", "%," + user.getOffice().getId() + ",%")));
    }
    // ????
    if (!currentUser.isAdmin()) {
        dc.add(Restrictions.ne("id", 1L));
    }
    dc.add(dataScopeFilter(currentUser, "office", ""));
    // System.out.println(dataScopeFilterString(currentUser, "office", ""));
    if (StringUtils.isNotEmpty(user.getLoginName())) {
        dc.add(Restrictions.like("loginName", "%" + user.getLoginName() + "%"));
    }
    if (StringUtils.isNotEmpty(user.getName())) {
        dc.add(Restrictions.like("name", "%" + user.getName() + "%"));
    }
    dc.add(Restrictions.eq(User.DEL_FLAG, User.DEL_FLAG_NORMAL));
    if (!StringUtils.isNotEmpty(page.getOrderBy())) {
        dc.addOrder(Order.asc("company.code")).addOrder(Order.asc("office.code")).addOrder(Order.desc("id"));
    }
    return userDao.find(page, dc);
}

From source file:com.pmo.pmoitserv.Dao.UtilisateurDao.java

public Utilisateur getUserByLogin_Email(String login, String password) {
    Utilisateur user = null;// ww w.j a v  a  2  s.co m
    try {
        this.session = HibernateUtil.getSessionFactory().openSession();
        Transaction tx = session.beginTransaction();
        Criteria c = session.createCriteria(Utilisateur.class);
        Criterion email = Restrictions.eq("utilisateurLogin", login);
        Criterion log = Restrictions.like("utilisateurEmail", login);
        LogicalExpression orExp = Restrictions.or(email, log);
        c.add(orExp);
        c.add(Restrictions.eq("utilisateurPassword", password));
        //.add(Restrictions.disjunction().add(Restrictions.eq("utilisateurLogin", login)).add(Restrictions.eq("utilisateurEmail", login)));
        user = (Utilisateur) c.uniqueResult();
        tx.commit();
        session.flush();
        session.close();
        return user;
    } catch (Exception e) {
        e.printStackTrace();
        session.close();
    }
    return user;
}

From source file:com.prueba.spring.dao.impl.EventoDAO.java

@Transactional(readOnly = true)
public RespuestaGenerica<List<Evento>> obtenerEventosSinColaborador(int idColaborador) {
    RespuestaGenerica<List<Evento>> respuesta;
    try {//from   www  .jav a 2 s.c  o  m
        this.iniciaOperacion();
        Criteria criteria = session.createCriteria(Evento.class);
        criteria.createAlias("colaboradores", "c", JoinType.LEFT_OUTER_JOIN).add(Restrictions
                .or(Restrictions.ne("c.idColaborador", idColaborador), Restrictions.isNull("c.idColaborador")));
        List<Evento> eventos = criteria.list();
        respuesta = new RespuestaGenerica<List<Evento>>(eventos);
    } catch (Exception ex) {
        Logger.getLogger(EventoDAO.class.getName()).log(Level.SEVERE, null, ex);
        respuesta = new RespuestaGenerica(ex);
    } finally {
        try {
            session.close();
        } catch (Exception ex) {
            Logger.getLogger(EventoDAO.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
    return respuesta;
}

From source file:com.puertobahia.iceberg.dao.impl.ZonaDAOImpl.java

@Override
public Zona getById(Long id) {
    Criteria crit = getSession().createCriteria(Zona.class);
    crit.add(Restrictions.idEq(id));//www. j  ava  2  s .c o m
    crit.setFetchMode("usuario", FetchMode.JOIN);
    crit.setFetchMode("usuario.empleado", FetchMode.JOIN);
    crit.setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY);
    crit.setFetchMode("consejos_comunitario", FetchMode.JOIN);
    crit.createAlias("consejos_comunitario", "consejo", JoinType.LEFT_OUTER_JOIN);
    crit.add(Restrictions.or(Restrictions.and(Restrictions.eq("consejo.estado", 0)),
            Restrictions.isNull("consejo.estado")));
    return (Zona) crit.uniqueResult();
    /*Criteria crit = getSession().createCriteria(Zona.class);
     crit.add(Restrictions.idEq(id));
     crit.setFetchMode("usuario", FetchMode.JOIN);
     crit.setFetchMode("usuario.empleado", FetchMode.JOIN);
     crit.setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY);
     Zona zona = (Zona) crit.uniqueResult();
     Criteria crit2 = getSession().createCriteria(ConsejoComunitario.class);
     zona.setConsejos_comunitario(crit2.add(Restrictions.and(Restrictions.idEq(zona.getId()),Restrictions.eq("estado", 0))).list());
     return zona;*/
}

From source file:com.quakearts.webapp.hibernate.HibernateBean.java

License:Open Source License

@SuppressWarnings("unchecked")
private Criterion handleParameter(String key, Serializable value, QueryContext context) {
    Criterion criterion;//from w  w w  .j  av  a 2s. c  om
    if (key == ParameterMapBuilder.CONJUNCTION && value instanceof Map) {
        Map<String, Serializable> conjoinedParameters = (Map<String, Serializable>) value;
        criterion = handleJunction(conjoinedParameters, ParameterMapBuilder.CONJUNCTION, context);
    } else if (key == ParameterMapBuilder.DISJUNCTION && value instanceof Map) {
        Map<String, Serializable> disjoinedParameters = (Map<String, Serializable>) value;
        criterion = handleJunction(disjoinedParameters, ParameterMapBuilder.DISJUNCTION, context);
    } else if (value instanceof Choice) {
        Choice choice = (Choice) value;
        if (choice.getChoices().size() == 0)
            throw new HibernateException(
                    "Invalid choice list for parameter" + key + ". Choice list must be greater than zero.");

        if (choice.getChoices().size() == 1)
            criterion = createCriterion(key, choice.getChoices().get(0), context);
        else if (choice.getChoices().size() == 2)
            criterion = Restrictions.or(createCriterion(key, choice.getChoices().get(0), context),
                    createCriterion(key, choice.getChoices().get(1), context));
        else {
            Criterion[] choiceCriteria = new Criterion[choice.getChoices().size()];
            for (int i = 0; i < choice.getChoices().size(); i++) {
                choiceCriteria[i] = createCriterion(key, choice.getChoices().get(i), context);
            }
            criterion = Restrictions.or(choiceCriteria);
        }
    } else {
        criterion = createCriterion(key, value, context);
    }

    return criterion;
}

From source file:com.quix.aia.cn.imo.mapper.AddressBookMaintenance.java

License:Open Source License

/**
 * <p>/* w ww. j  a va2 s  .c  o m*/
 * This method retrieves AddressBook of Particular nric code
 * <p>
 * 
 * @param iosAddressCode and agentId
 * @return AddressBook Class Object
 * 
 */
public List getAddressBook1(AddressBook addressBook) {

    Session session = null;
    Criteria criteria = null;
    ArrayList<AddressBook> list = null;

    try {
        session = HibernateFactory.openSession();
        criteria = session.createCriteria(AddressBook.class);
        criteria.add(Restrictions.eq("name", addressBook.getName()));
        criteria.add(Restrictions.eq("birthDate", addressBook.getBirthDate()));
        criteria.add(
                Restrictions.or(Restrictions.eq("agentId", "" + Integer.parseInt(addressBook.getAgentId())),
                        Restrictions.eq("agentId", addressBook.getAgentId())));
        list = (ArrayList) criteria.list();

    } catch (Exception ex) {
        log.log(Level.SEVERE, ex.getMessage());
        ex.printStackTrace();
        ex.printStackTrace();
        LogsMaintenance logsMain = new LogsMaintenance();
        StringWriter errors = new StringWriter();
        ex.printStackTrace(new PrintWriter(errors));
        logsMain.insertLogs("AddressBookMaintenance", Level.SEVERE + "", errors.toString());
    } finally {
        try {
            HibernateFactory.close(session);
        } catch (Exception e) {
            log.log(Level.SEVERE, e.getMessage());
            e.printStackTrace();
        }
        session = null;
        criteria = null;
    }

    if (null == list) {
        list = new ArrayList<AddressBook>();
    }

    return list;
}

From source file:com.redhat.rhn.domain.channel.ChannelFamilyFactory.java

License:Open Source License

/**
 * Lookup a ChannelFamily by its label// w ww. j  a v a 2s. c o m
 * @param label the label to search for
 * @param org the Org the Family belongs to, use null if looking for
 *        official RedHat ChannelFamilies
 * @return the ChannelFamily found
 */
public static ChannelFamily lookupByLabel(String label, Org org) {
    Session session = getSession();
    Criteria c = session.createCriteria(ChannelFamily.class);
    c.add(Restrictions.eq("label", label));
    c.add(Restrictions.or(Restrictions.eq("org", org), Restrictions.isNull("org")));
    return (ChannelFamily) c.uniqueResult();
}