Example usage for org.hibernate.criterion Restrictions not

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

Introduction

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

Prototype

public static Criterion not(Criterion expression) 

Source Link

Document

Return the negation of an expression

Usage

From source file:ispyb.server.common.services.sessions.Session3ServiceBean.java

License:Open Source License

private List<Session3VO> findSessionToBeProtected(Integer delay, Integer window) {
    Session session = (Session) this.entityManager.getDelegate();
    Criteria crit = session.createCriteria(Session3VO.class);

    crit.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY); // DISTINCT RESULTS !
    Integer delayToTrigger = 26;/*from w w w  .  j  a va  2  s .c o m*/
    Integer windowForTrigger = 24;
    if (delay != null)
        delayToTrigger = delay;
    if (window != null)
        windowForTrigger = window;

    Calendar cal = Calendar.getInstance();
    cal.setTime(new Date());
    cal.add(Calendar.HOUR_OF_DAY, -delayToTrigger);

    Date date2 = cal.getTime();
    cal.add(Calendar.HOUR_OF_DAY, -windowForTrigger);
    Date date1 = cal.getTime();

    if (date1 != null)
        crit.add(Restrictions.ge("lastUpdate", date1));
    if (date2 != null)
        crit.add(Restrictions.le("lastUpdate", date2));

    crit.add(Restrictions.in("beamlineName", beamlinesToProtect));

    // account not to protect: opid*, opd*, mxihr*
    Criteria subCrit = crit.createCriteria("proposalVO");

    subCrit.add(Restrictions.not(Restrictions.in("code", account_not_to_protect)));

    crit.addOrder(Order.asc("lastUpdate"));

    return crit.list();
}

From source file:ispyb.server.common.services.sessions.Session3ServiceBean.java

License:Open Source License

private List<Session3VO> findSessionNotProtectedToBeProtected(Date date1, Date date2) {
    Session session = (Session) this.entityManager.getDelegate();
    Criteria crit = session.createCriteria(Session3VO.class);

    crit.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY); // DISTINCT RESULTS !

    Calendar cal = Calendar.getInstance();
    cal.setTime(new Date());
    Integer delayToTrigger = 8;//from   w w w.  j a  v a 2 s .  c om
    Integer windowForTrigger = 14 * 24;

    cal.add(Calendar.HOUR_OF_DAY, -delayToTrigger);
    // launch the protection of sessions which have not been protected during the last 14 days.
    if (date2 == null)
        date2 = cal.getTime();

    if (date1 == null) {
        cal.setTime(date2);
        cal.add(Calendar.HOUR_OF_DAY, -windowForTrigger);
        date1 = cal.getTime();
    }

    if (date1 != null)
        crit.add(Restrictions.ge("lastUpdate", date1));
    if (date2 != null)
        crit.add(Restrictions.le("lastUpdate", date2));

    crit.add(Restrictions.in("beamlineName", beamlinesToProtect));

    crit.add(Restrictions.isNull("protectedData"));

    // account not to protect: opid*, opd*, mxihr*
    Criteria subCrit = crit.createCriteria("proposalVO");

    subCrit.add(Restrictions.not(Restrictions.in("code", account_not_to_protect)));

    crit.addOrder(Order.asc("lastUpdate"));

    List<Session3VO> listNotProtected = crit.list();
    LOG.info("find not protected sessions between " + date1 + " and  " + date2);
    if (listNotProtected != null) {
        String sessionsIds = "";
        for (Iterator iterator = listNotProtected.iterator(); iterator.hasNext();) {
            Session3VO session3vo = (Session3VO) iterator.next();
            sessionsIds = sessionsIds + ", " + session3vo.getSessionId();
        }
        LOG.info(listNotProtected.size() + " sessions found : " + sessionsIds);
    }

    return listNotProtected;
}

From source file:ispyb.server.mx.daos.autoproc.PhasingStatistics3DAOBean.java

License:Open Source License

/**
 * Find all PhasingStatistics3 related to a given autoProc
 *//*from www  .  j av a2s .  c o  m*/
@SuppressWarnings("unchecked")
public List<PhasingStatistics3VO> findFiltered(Integer autoProcId, String metric, Boolean withOverall) {
    Session session = (Session) this.entityManager.getDelegate();

    Criteria crit = session.createCriteria(PhasingStatistics3VO.class);
    crit.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY); // DISTINCT RESULTS !
    if (autoProcId != null) {
        Criteria subCritPhasingHasScaling = crit.createCriteria("phasingHasScaling1VO");
        Criteria subCritAutoProcScaling = subCritPhasingHasScaling.createCriteria("autoProcScalingVO");
        Criteria subCritAutoProc = subCritAutoProcScaling.createCriteria("autoProcVO");
        subCritAutoProc.add(Restrictions.eq("autoProcId", autoProcId));
    }
    if (metric != null && metric.trim().length() > 0) {
        crit.add(Restrictions.eq("metric", metric));
    }
    if (withOverall != null && !withOverall) {
        crit.add(Restrictions.not(Restrictions.eq("binNumber", 999)));
    }

    crit.addOrder(Order.desc("phasingStatisticsId"));

    return crit.list();
}

From source file:ispyb.server.mx.services.autoproc.PhasingStatistics3ServiceBean.java

License:Open Source License

/**
 * Find all PhasingStatistics3 related to a given autoProc
 *///www.j ava2s .co m
@SuppressWarnings("unchecked")
public List<PhasingStatistics3VO> findFiltered(final Integer autoProcId, final String metric,
        final Boolean withOverall) throws Exception {

    Session session = (Session) this.entityManager.getDelegate();

    Criteria crit = session.createCriteria(PhasingStatistics3VO.class);
    crit.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY); // DISTINCT RESULTS !
    if (autoProcId != null) {
        Criteria subCritPhasingHasScaling = crit.createCriteria("phasingHasScaling1VO");
        Criteria subCritAutoProcScaling = subCritPhasingHasScaling.createCriteria("autoProcScalingVO");
        Criteria subCritAutoProc = subCritAutoProcScaling.createCriteria("autoProcVO");
        subCritAutoProc.add(Restrictions.eq("autoProcId", autoProcId));
    }
    if (metric != null && metric.trim().length() > 0) {
        crit.add(Restrictions.eq("metric", metric));
    }
    if (withOverall != null && !withOverall) {
        crit.add(Restrictions.not(Restrictions.eq("binNumber", 999)));
    }

    crit.addOrder(Order.desc("phasingStatisticsId"));

    List<PhasingStatistics3VO> foundEntities = crit.list();
    return foundEntities;
}

From source file:it.av.eatt.service.impl.EaterServiceHibernate.java

License:Apache License

/**
 * {@inheritDoc}//w  w  w .  j av  a2 s.c o  m
 */
@Override
public Collection<Eater> findUserWithoutRelation(Eater forUser, String pattern) {
    // TODO can be improved with an outer join
    Collection<EaterRelation> relatedUser = userRelationService.getAllRelations(forUser);
    ArrayList<String> relatedUserId = new ArrayList<String>(relatedUser.size());
    for (EaterRelation userRelation : relatedUser) {
        relatedUserId.add(userRelation.getToUser().getId());
    }
    List<Criterion> criterions = new ArrayList<Criterion>(3);
    if (StringUtils.isNotBlank(pattern)) {
        criterions.add(Restrictions.or(Restrictions.ilike(Eater.FIRSTNAME, pattern),
                Restrictions.ilike(Eater.LASTNAME, pattern)));
    }
    if (relatedUserId.size() > 0) {
        criterions.add(Restrictions.not(Restrictions.in(Eater.ID, relatedUserId)));
    }
    // escludes the forUser from the search
    criterions.add(Restrictions.not(Restrictions.idEq(forUser.getId())));
    List<Eater> results = super.findByCriteria(criterions.toArray(new Criterion[criterions.size()]));
    return results;
}

From source file:itensil.repository.hibernate.BasicSearcher.java

License:Open Source License

protected static Criterion convertCriteria(Criteria crit, BasicSearchClause clause, String alias) {
    if (clause.needsSubClause()) {
        switch (clause.getOp()) {
        case BasicSearchClause.OP_AND:
            Junction conj = Restrictions.conjunction();
            boolean empty = true;
            int acount = 0;
            for (BasicSearchClause subClause : clause.getSubClauses()) {
                Criterion subCrit = convertCriteria(crit, subClause, alias + "a" + acount);
                acount++;//from w  ww .j  av a 2  s  .com
                if (subCrit != null) {
                    empty = false;
                    conj.add(subCrit);
                }
            }
            return empty ? null : conj;

        case BasicSearchClause.OP_NOT:
            Criterion subCrit = convertCriteria(crit, clause.getSubClauses()[0], alias + "n");
            if (subCrit != null) {
                return Restrictions.not(subCrit);
            }
            return null;

        default: // probably OR
            return null;
        }
    }
    if (clause.getOp() == BasicSearchClause.OP_IS_COLLECTION) {
        return Restrictions.eq("collection", true);
    }
    String argName;
    Criterion nameCrit = null;
    if (QNAME_DISPLAYNAME.equals(clause.getProperty())) {
        if (clause.getOp() == BasicSearchClause.OP_IS_DEFINED)
            return null;
        argName = "localUri";
    } else {

        /* This has bugged in hibernate
                
        crit.createAlias("versionEntities", alias);
        crit.createAlias(alias + ".propertyVals", alias + "pv");
        //crit.createAlias(alias + "p.name", alias + "nm");
        argName = alias + "pv.value";
                
                
        crit.createAlias("defaultVersion.directProps", alias);
        crit.createAlias("defaultVersion.directProps.name", alias + "nm");
                
        //crit.createAlias(alias + "dp.name", alias + "nm");
        argName = alias + ".value";
        nameCrit = Restrictions.eq(alias + "nm.localName", clause.getProperty().getLocalPart());
        */
        return null;
    }
    Criterion valCrit;
    switch (clause.getOp()) {
    case BasicSearchClause.OP_IS_DEFINED:
        return nameCrit;
    case BasicSearchClause.OP_EQ:
        valCrit = Restrictions.eq(argName, clause.getLiteral());
        break;
    case BasicSearchClause.OP_GT:
        valCrit = Restrictions.gt(argName, clause.getLiteral());
        break;
    case BasicSearchClause.OP_GTE:
        valCrit = Restrictions.ge(argName, clause.getLiteral());
        break;
    case BasicSearchClause.OP_LT:
        valCrit = Restrictions.lt(argName, clause.getLiteral());
        break;
    case BasicSearchClause.OP_LTE:
        valCrit = Restrictions.le(argName, clause.getLiteral());
        break;
    case BasicSearchClause.OP_LIKE:
        valCrit = Restrictions.like(argName, clause.getLiteral());
        break;
    default:
        return null;
    }
    return nameCrit == null ? valCrit : Restrictions.and(nameCrit, valCrit);
}

From source file:kr.debop4j.data.hibernate.tools.CriteriaTool.java

License:Apache License

/**
 * Add not./*from  w  w w . j a  v  a  2s .c  o  m*/
 *
 * @param criteria   the criteria
 * @param expression the expression
 * @return the criteria
 */
public static Criteria addNot(Criteria criteria, Criterion expression) {
    return criteria.add(Restrictions.not(expression));
}

From source file:kr.debop4j.data.hibernate.tools.CriteriaTool.java

License:Apache License

/**
 * Add not./*from www. j a v a  2  s. c o m*/
 *
 * @param dc         the dc
 * @param expression the expression
 * @return the detached criteria
 */
public static DetachedCriteria addNot(DetachedCriteria dc, Criterion expression) {
    return dc.add(Restrictions.not(expression));
}

From source file:main.java.edu.isistan.genCom.redSocial.dao.DAOInvestigador.java

License:Open Source License

/**
 * Obtiene los investigadores con iguales publicaciones, y los que tienen mismo lugar de trabajo
 * @return/*from   ww  w  .j  ava2 s.c om*/
 */
public Set getRelacionados(Investigador investigador) {
    //      TODO Obtener investigadores con mismas publicaciones y con igual lugar de trabajo
    log.debug("Obteniendo todos los coautores");

    Session session = sessionFactory.openSession();
    Transaction tx = null;
    Set results = new HashSet<>();

    try {
        tx = session.beginTransaction();

        //         Agrega los investigadores con iguales publicaciones
        Set<Publicacion> publicaciones = investigador.getPublicaciones();

        for (Publicacion publicacion : publicaciones) {
            List consulta = session.createCriteria(Investigador.class).createAlias("publicaciones", "pub")
                    .add(Restrictions.eq("pub.publicacionId", publicacion.getPublicacionId()))
                    .add(Restrictions.not(Restrictions.eq("investigadorId", investigador.getInvestigadorId())))
                    .list();

            results.addAll(consulta);
        }

        //         Agrega los investigadores con iguales lugares de trabajo
        Set<LugarDeTrabajo> lugares = investigador.getLugaresDeTrabajos();

        for (LugarDeTrabajo lugar : lugares) {
            List consulta = session.createCriteria(Investigador.class).createAlias("lugaresDeTrabajos", "lug")
                    .add(Restrictions.eq("lug.id", lugar.getId()))
                    .add(Restrictions.not(Restrictions.eq("investigadorId", investigador.getInvestigadorId())))
                    .list();

            results.addAll(consulta);
        }

        log.debug("recuperacin exitosa, result size: " + results.size());

        tx.commit();
        return results;
    } catch (RuntimeException re) {
        tx.rollback();
        log.error("fall la recuperacin", re);
        throw re;
    } finally {
        session.close();
    }
}

From source file:main.java.info.jtrac.domain.ColumnHeading.java

License:Apache License

private Object process(Component c, DetachedCriteria criteria) {
    boolean forFragment = c != null;
    List<Expression> list = new ArrayList<Expression>();
    Fragment fragment = null;/*w w  w.ja va2 s. co m*/
    List values = filterCriteria.getValues();
    Object value = filterCriteria.getValue();
    Object value2 = filterCriteria.getValue2();
    Expression expression = filterCriteria.getExpression();
    if (isField()) {
        switch (field.getName().getType()) {
        case 1:
        case 2:
        case 3:
            list.add(Expression.IN);
            if (forFragment) {
                fragment = new Fragment("fragParent", "multiSelect");
                final Map<String, String> options = field.getOptions();
                JtracCheckBoxMultipleChoice choice = new JtracCheckBoxMultipleChoice("values",
                        new ArrayList(options.keySet()), new IChoiceRenderer() {
                            /**
                            * 
                            */
                            private static final long serialVersionUID = 1L;

                            public Object getDisplayValue(Object o) {
                                return options.get(o);
                            }

                            public String getIdValue(Object o, int i) {
                                return o.toString();
                            }
                        });
                fragment.add(choice);
                choice.setModel(new PropertyModel(this, "filterCriteria.values"));
            }
            if (filterHasValueList(criteria)) {
                List<Integer> keys = new ArrayList<Integer>(values.size());
                for (Object o : values) {
                    keys.add(new Integer(o.toString()));
                }
                criteria.add(Restrictions.in(name, keys));
            }
            break; // drop down list
        case 4: // decimal number
            list.add(Expression.EQ);
            list.add(Expression.NOT_EQ);
            list.add(Expression.GT);
            list.add(Expression.LT);
            list.add(Expression.BETWEEN);
            if (forFragment) {
                fragment = new Fragment("fragParent", "textField");
                TextField textField = new TextField("value", Double.class);
                textField.setModel(new PropertyModel(this, "filterCriteria.value"));
                fragment.add(textField);
                if (expression == Expression.BETWEEN) {
                    TextField textField2 = new TextField("value2", Double.class);
                    textField.setModel(new PropertyModel(this, "filterCriteria.value2"));
                    fragment.add(textField2);
                } else {
                    fragment.add(new WebMarkupContainer("value2").setVisible(false));
                }
            }
            if (filterHasValue(criteria)) {
                switch (expression) {
                case EQ:
                    criteria.add(Restrictions.eq(name, value));
                    break;
                case NOT_EQ:
                    criteria.add(Restrictions.not(Restrictions.eq(name, value)));
                    break;
                case GT:
                    criteria.add(Restrictions.gt(name, value));
                    break;
                case LT:
                    criteria.add(Restrictions.lt(name, value));
                    break;
                case BETWEEN:
                    criteria.add(Restrictions.gt(name, value));
                    criteria.add(Restrictions.lt(name, value2));
                    break;
                default:
                }
            }
            break;
        case 6: // date
            list.add(Expression.EQ);
            list.add(Expression.NOT_EQ);
            list.add(Expression.GT);
            list.add(Expression.LT);
            list.add(Expression.BETWEEN);
            if (forFragment) {
                fragment = new Fragment("fragParent", "dateField");
                YuiCalendar calendar = new YuiCalendar("value", new PropertyModel(this, "filterCriteria.value"),
                        false);
                fragment.add(calendar);
                if (filterCriteria.getExpression() == Expression.BETWEEN) {
                    YuiCalendar calendar2 = new YuiCalendar("value2",
                            new PropertyModel(this, "filterCriteria.value2"), false);
                    fragment.add(calendar2);
                } else {
                    fragment.add(new WebMarkupContainer("value2").setVisible(false));
                }
            }
            if (filterHasValue(criteria)) {
                switch (expression) {
                case EQ:
                    criteria.add(Restrictions.eq(name, value));
                    break;
                case NOT_EQ:
                    criteria.add(Restrictions.not(Restrictions.eq(name, value)));
                    break;
                case GT:
                    criteria.add(Restrictions.gt(name, value));
                    break;
                case LT:
                    criteria.add(Restrictions.lt(name, value));
                    break;
                case BETWEEN:
                    criteria.add(Restrictions.gt(name, value));
                    criteria.add(Restrictions.lt(name, value2));
                    break;
                default:
                }
            }
            break;
        case 5: // free text
            list.add(Expression.CONTAINS);
            if (forFragment) {
                fragment = new Fragment("fragParent", "textField");
                TextField textField = new TextField("value", String.class);
                textField.setModel(new PropertyModel(this, "filterCriteria.value"));
                fragment.add(textField);
                fragment.add(new WebMarkupContainer("value2").setVisible(false));
            }
            if (filterHasValue(criteria)) {
                criteria.add(Restrictions.ilike(name, (String) value, MatchMode.ANYWHERE));
            }
            break;
        default:
            throw new RuntimeException("Unknown Column Heading " + name);
        }
    } else {
        if (name.equals(ID)) {
            list.add(Expression.EQ);
            if (forFragment) {
                fragment = new Fragment("fragParent", "textField");
                TextField textField = new TextField("value", String.class);
                textField.setModel(new PropertyModel(this, "filterCriteria.value"));
                fragment.add(textField);
                fragment.add(new WebMarkupContainer("value2").setVisible(false));
            }
            // should never come here for criteria: see ItemSearch#getRefId()
        } else if (name.equals(SUMMARY)) {
            list.add(Expression.CONTAINS);
            if (forFragment) {
                fragment = new Fragment("fragParent", "textField");
                TextField textField = new TextField("value", String.class);
                textField.setModel(new PropertyModel(this, "filterCriteria.value"));
                fragment.add(textField);
                fragment.add(new WebMarkupContainer("value2").setVisible(false));
            }
            if (filterHasValue(criteria)) {
                criteria.add(Restrictions.ilike(name, (String) value, MatchMode.ANYWHERE));
            }
        } else if (name.equals(DETAIL)) {
            list.add(Expression.CONTAINS);
            if (forFragment) {
                fragment = new Fragment("fragParent", "textField");
                TextField textField = new TextField("value", String.class);
                textField.setModel(new PropertyModel(this, "filterCriteria.value"));
                fragment.add(textField);
                fragment.add(new WebMarkupContainer("value2").setVisible(false));
            }
            // should never come here for criteria: see ItemSearch#getSearchText()
        } else if (name.equals(STATUS)) {
            list.add(Expression.IN);
            if (forFragment) {
                fragment = new Fragment("fragParent", "multiSelect");
                final Map<Integer, String> options = ComponentUtils.getCurrentSpace(c).getMetadata()
                        .getStates();
                options.remove(State.NEW);
                JtracCheckBoxMultipleChoice choice = new JtracCheckBoxMultipleChoice("values",
                        new ArrayList(options.keySet()), new IChoiceRenderer() {
                            /**
                            * 
                            */
                            private static final long serialVersionUID = 1L;

                            public Object getDisplayValue(Object o) {
                                return options.get(o);
                            }

                            public String getIdValue(Object o, int i) {
                                return o.toString();
                            }
                        });
                fragment.add(choice);
                choice.setModel(new PropertyModel(this, "filterCriteria.values"));
            }
            if (filterHasValueList(criteria)) {
                criteria.add(Restrictions.in(name, filterCriteria.getValues()));
            }
        } else if (name.equals(ASSIGNED_TO) || name.equals(LOGGED_BY)) {
            list.add(Expression.IN);
            if (forFragment) {
                fragment = new Fragment("fragParent", "multiSelect");
                List<User> users = null;
                Space s = ComponentUtils.getCurrentSpace(c);
                if (s == null) {
                    User u = ComponentUtils.getPrincipal(c);
                    users = ComponentUtils.getJtrac(c).findUsersForUser(u);
                } else {
                    users = ComponentUtils.getJtrac(c).findUsersForSpace(s.getId());
                }
                JtracCheckBoxMultipleChoice choice = new JtracCheckBoxMultipleChoice("values", users,
                        new IChoiceRenderer() {
                            /**
                            * 
                            */
                            private static final long serialVersionUID = 1L;

                            public Object getDisplayValue(Object o) {
                                return ((User) o).getName();
                            }

                            public String getIdValue(Object o, int i) {
                                return ((User) o).getId() + "";
                            }
                        });
                fragment.add(choice);
                choice.setModel(new PropertyModel(this, "filterCriteria.values"));
            }
            if (filterHasValueList(criteria)) {
                criteria.add(Restrictions.in(name, filterCriteria.getValues()));
            }
        } else if (name.equals(TIME_STAMP)) {
            list.add(Expression.BETWEEN);
            list.add(Expression.GT);
            list.add(Expression.LT);
            if (forFragment) {
                fragment = new Fragment("fragParent", "dateField");
                YuiCalendar calendar = new YuiCalendar("value", new PropertyModel(this, "filterCriteria.value"),
                        false);
                fragment.add(calendar);
                if (expression == Expression.BETWEEN) {
                    YuiCalendar calendar2 = new YuiCalendar("value2",
                            new PropertyModel(this, "filterCriteria.value2"), false);
                    fragment.add(calendar2);
                } else {
                    fragment.add(new WebMarkupContainer("value2").setVisible(false));
                }
            }
            if (filterHasValue(criteria)) {
                switch (expression) {
                case GT:
                    criteria.add(Restrictions.gt(name, value));
                    break;
                case LT:
                    criteria.add(Restrictions.lt(name, value));
                    break;
                case BETWEEN:
                    criteria.add(Restrictions.gt(name, value));
                    criteria.add(Restrictions.lt(name, value2));
                    break;
                default:
                }
            }
        } else if (name.equals(SPACE)) {
            list.add(Expression.IN);
            if (forFragment) {
                fragment = new Fragment("fragParent", "multiSelect");
                List<Space> spaces = new ArrayList(ComponentUtils.getPrincipal(c).getSpaces());
                JtracCheckBoxMultipleChoice choice = new JtracCheckBoxMultipleChoice("values", spaces,
                        new IChoiceRenderer() {
                            /**
                            * 
                            */
                            private static final long serialVersionUID = 1L;

                            public Object getDisplayValue(Object o) {
                                return ((Space) o).getName();
                            }

                            public String getIdValue(Object o, int i) {
                                return ((Space) o).getId() + "";
                            }
                        });
                fragment.add(choice);
                choice.setModel(new PropertyModel(this, "filterCriteria.values"));
            }
            // should never come here for criteria: see ItemSearch#getSelectedSpaces()
        } else {
            throw new RuntimeException("Unknown Column Heading " + name);
        }
    }
    if (forFragment) {
        return fragment;
    } else {
        return list;
    }
}