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:org.rebioma.server.services.OccurrenceDbImpl.java

License:Apache License

/**
 * Adds a {@link Set} of search {@link OccurrenceFilter} to the
 * {@link Criteria}//from   w w  w .j a  v a 2  s .  com
 * 
 * @param criteria {@link Criteria} to be added with filters
 * @param user an id of a user in db.
 * @param searchFilters a filters that use for find Occurrences.
 * @param resultFilter the {@link ResultFilter} to determine what public
 *          filter is added.
 * @param tryCount TODO
 * @return {@link Set} of string filters was added to criteria.
 */
private Set<String> addCreterionByFilters(Criteria criteria, User user, Set<OccurrenceFilter> searchFilters,
        ResultFilter resultFilter, int tryCount) {
    Set<String> queryFilters = new HashSet<String>();
    // if (userId != null) {

    // }
    // Adds restrictions for each query filter:
    boolean isMyOccurrence = false;
    String ownerField = getOccurrencePropertyName("ownerEmail");
    List<Criterion> disjunctionCriterions = new ArrayList<Criterion>();
    for (OccurrenceFilter filter : searchFilters) {
        if ((filter.getOperator() != Operator.IS_EMPTY && filter.getOperator() != Operator.IS_NOT_EMPTY)
                && filter.value instanceof String && ((String) filter.value).equals("")) {
            continue;
        }
        if (filter.column.equalsIgnoreCase(ownerField)) {
            isMyOccurrence = true;
        }
        String queryFilter = null;
        Criterion criterion = null;
        // if filter column is "quickSearch" then this is a simple search
        if (filter.column.equalsIgnoreCase(filter.getPropertyName("quickSearch"))) {
            Criterion acceptedSpeciesCri = null;
            Criterion verbatimSpeciesCri = null;
            Criterion scientificNameCri = null;
            String acceptedSpecies = filter.getPropertyName("acceptedSpecies");
            String verbatimSpecies = filter.getPropertyName("verbatimSpecies");
            String scientificName = filter.getPropertyName("scientificName");
            if (tryCount == 1) {
                acceptedSpeciesCri = Restrictions.ilike(acceptedSpecies, filter.getValue().toString(),
                        MatchMode.START);
                verbatimSpeciesCri = Restrictions.ilike(verbatimSpecies, filter.getValue().toString(),
                        MatchMode.START);
                scientificNameCri = Restrictions.ilike(scientificName, filter.getValue().toString(),
                        MatchMode.START);
                queryFilter = acceptedSpecies + " like '" + filter.getValue() + "%' or " + verbatimSpecies
                        + " like '" + filter.getValue() + "%' or " + scientificName + " like '"
                        + filter.getValue() + "%'";
            } else if (tryCount == 2) {
                acceptedSpeciesCri = Restrictions.ilike(acceptedSpecies, filter.getValue().toString(),
                        MatchMode.ANYWHERE);
                verbatimSpeciesCri = Restrictions.ilike(verbatimSpecies, filter.getValue().toString(),
                        MatchMode.ANYWHERE);
                scientificNameCri = Restrictions.ilike(scientificName, filter.getValue().toString(),
                        MatchMode.ANYWHERE);
                queryFilter = acceptedSpecies + " like '%" + filter.getValue() + "%' or " + verbatimSpecies
                        + " like '%" + filter.getValue() + "%' or " + scientificName + " like '%"
                        + filter.getValue() + "%'";
            }
            criterion = Restrictions.or(scientificNameCri,
                    Restrictions.or(acceptedSpeciesCri, verbatimSpeciesCri));
        } else {
            Operator op = filter.getOperator();
            String value;
            switch (op) {
            case CONTAIN:
                value = (String) filter.getValue();
                criterion = Restrictions.ilike(filter.column, value, MatchMode.ANYWHERE);
                break;
            case EQUAL:
                criterion = null;
                if (filter.column.equals(filter.getPropertyName("sex"))) {
                    value = (String) filter.getValue();
                    if (value.equalsIgnoreCase("unknown")) {
                        Object[] filters = getComplexCriterion(
                                new String[] { "male", "female", "hermaphroditic" }, filter.column, "!=");
                        criterion = (Criterion) filters[0];
                        queryFilter = filters[1].toString();
                        // criterion = Restrictions.or(Restrictions., rhs)
                    } else {
                        criterion = Restrictions.eq(filter.column, value);
                    }
                } else if (filter.column.equals(filter.getPropertyName("BasisOfRecord"))) {
                    value = (String) filter.getValue();
                    if (value.equalsIgnoreCase("Non-standardSpecimen")) {
                        Object[] filters = getComplexCriterion(VALID_BASIS_OF_RECORDS, filter.column, "!=");
                        criterion = (Criterion) filters[0];
                        queryFilter = filters[1].toString();
                    } else {
                        criterion = Restrictions.eq(filter.column, value);
                    }
                } else {
                    // {wd} on utilise "upper()" si type column = String 
                    if (StringUtil.isType(Occurrence.class, filter.column, String.class))
                        criterion = Restrictions.sqlRestriction("upper({alias}."
                                + StringUtil.columnName(Occurrence.class, filter.column) + ") = upper(?)",
                                filter.getValue(), Hibernate.STRING);
                    else
                        criterion = Restrictions.eq(filter.column, filter.getValue());
                }
                break;
            case NOT_CONTAIN:
                value = (String) filter.getValue();
                criterion = Restrictions.not(Restrictions.ilike(filter.column, value, MatchMode.ANYWHERE));
                break;
            case NOT_EQUAL:
                criterion = null;
                if (filter.column.equals(filter.getPropertyName("sex"))) {
                    value = (String) filter.getValue();
                    if (value.equalsIgnoreCase("unknown")) {
                        Object[] filters = getComplexCriterion(
                                new String[] { "male", "female", "hermaphroditic" }, filter.column, "=");
                        criterion = (Criterion) filters[0];
                        queryFilter = filters[1].toString();
                        // criterion = Restrictions.or(Restrictions., rhs)
                    } else {
                        criterion = Restrictions.ne(filter.column, value);
                    }
                } else if (filter.column.equals(filter.getPropertyName("BasisOfRecord"))) {
                    value = (String) filter.getValue();
                    if (value.equalsIgnoreCase("Non-standardSpecimen")) {
                        Object[] filters = getComplexCriterion(VALID_BASIS_OF_RECORDS, filter.column, "=");
                        criterion = (Criterion) filters[0];
                        queryFilter = filters[1].toString();
                    } else {
                        criterion = Restrictions.ne(filter.column, value);
                    }
                } else {
                    criterion = Restrictions.ne(filter.column, filter.getValue());
                }
                break;
            case START_WITH:
                value = (String) filter.getValue();
                criterion = Restrictions.ilike(filter.column, value, MatchMode.START);
                break;
            case NOT_START_WITH:
                value = (String) filter.getValue();
                criterion = Restrictions.not(Restrictions.ilike(filter.column, value, MatchMode.START));
                break;
            case LESS:
                criterion = Restrictions.lt(filter.column, filter.getValue());
                break;
            case GREATER:
                criterion = Restrictions.gt(filter.column, filter.getValue());
                break;
            case LESS_EQUAL:
                criterion = Restrictions.le(filter.column, filter.getValue());
                break;
            case GREATER_EQUAL:
                criterion = Restrictions.ge(filter.column, filter.getValue());
                break;
            case IN:
                if (filter.getValue() instanceof Collection<?>) {
                    criterion = Restrictions.in(filter.column, (Collection<?>) filter.getValue());
                    //{WD
                } else if (StringUtil.isType(Occurrence.class, filter.column, Integer.class)) {
                    Object values[] = filter.getIntegerValues();
                    criterion = Restrictions.in(filter.column, values);
                    //}
                } else {
                    String values[] = filter.getCollectionValues();
                    criterion = Restrictions.in(filter.column, values);
                }
                break;
            case NOT_IN:
                //{WD
                if (StringUtil.isType(Occurrence.class, filter.column, Integer.class)) {
                    Object arryValues[] = filter.getIntegerValues();
                    criterion = Restrictions.not(Restrictions.in(filter.column, arryValues));
                    //}
                } else {
                    String arryValues[] = filter.getCollectionValues();
                    criterion = Restrictions.not(Restrictions.in(filter.column, arryValues));
                }
                break;
            case IS_EMPTY:
                if (StringUtil.isString(Occurrence.class, filter.column)) {
                    // System.out.println(filter.column + "null and empty");
                    criterion = Restrictions.or(Restrictions.isNull(filter.column),
                            Restrictions.eq(filter.column, ""));
                } else {
                    // System.out.println(filter.column + "null");
                    criterion = Restrictions.isNull(filter.column);
                }
                // System.out.println(criterion);
                break;
            case IS_NOT_EMPTY:
                criterion = Restrictions.and(Restrictions.isNotNull(filter.column),
                        Restrictions.ne(filter.column, ""));
                System.out.println(criterion);
                break;
            }
        }

        if (criterion != null) {
            if (queryFilter == null) {
                queryFilter = filter.toString();
            }
            queryFilters.add(queryFilter);
            if (filter.isDisjunction()) {
                disjunctionCriterions.add(criterion);
            } else {
                criteria.add(criterion);
            }

        }
    }
    Set<String> filtersString = new HashSet<String>();
    Criterion publicCriterion = getPublicCriterion(user, resultFilter, isMyOccurrence, filtersString);
    if (publicCriterion != null) {
        criteria.add(publicCriterion);
        queryFilters.addAll(filtersString);
    }
    Criterion disjunctionCriterion = null;
    for (Criterion c : disjunctionCriterions) {
        if (disjunctionCriterion == null) {
            disjunctionCriterion = Restrictions.disjunction().add(c);
        } else {
            disjunctionCriterion = Restrictions.or(disjunctionCriterion, c);
        }
    }
    if (disjunctionCriterion != null) {
        criteria.add(disjunctionCriterion);
    }
    return queryFilters;
}

From source file:org.remus.marketplace.controller.admin.CategoryAdminController.java

License:Open Source License

@Override
protected Map referenceData(HttpServletRequest request) throws Exception {
    String parameter = request.getParameter("categoryId");
    Category findById = categoryDao.findById(Integer.parseInt(parameter));

    List<Integer> ids = new ArrayList<Integer>();
    Set<Node> nodes = findById.getNodes();
    for (Node node : nodes) {
        ids.add(node.getId());//w w  w.j  a  v  a 2s.  com
    }
    AdvancedCriteria adv = AdvancedCriteria.EMPTY_READONLY_INSTANCE;
    if (ids.size() > 0) {
        adv = new AdvancedCriteria().addRestriction(Restrictions.not(Restrictions.in(Node.ID, ids)));
    }
    List<Node> find = nodeDao.find(adv);

    Map<String, Object> response = new HashMap<String, Object>();
    response.put("category", findById);
    response.put("availableSolutions", find);
    return response;

}

From source file:org.remus.marketplace.controller.admin.MarketAdminController.java

License:Open Source License

@Override
public ModelAndView handleRequest(HttpServletRequest arg0, HttpServletResponse arg1) throws Exception {

    List<Market> find = marketDao.find(AdvancedCriteria.EMPTY_READONLY_INSTANCE);

    List<Object> query = nodeDao.query(new AdvancedCriteria()
            .setProjection(Projections.projectionList().add(Projections.groupProperty(Node.ID), "cat_node")
                    .add(Projections.alias(Projections.rowCount(), "catCount")))
            .addSubCriteria(new AdvancedCriteria().setAssosication(Node.CATEGORIES)));

    List<Node> orphans = new ArrayList<Node>();
    List<Integer> nonOrphan = new ArrayList<Integer>();
    for (Object object : query) {
        nonOrphan.add((Integer) ((Object[]) object)[0]);
    }/*w w  w .  ja va 2 s.c om*/
    if (nonOrphan.size() == 0) {
        orphans = nodeDao.find(AdvancedCriteria.EMPTY_READONLY_INSTANCE);
    } else {
        orphans = nodeDao.find(
                new AdvancedCriteria().addRestriction(Restrictions.not(Restrictions.in(Node.ID, nonOrphan))));
    }
    List<Category> categories = categoryDao.find(AdvancedCriteria.EMPTY_READONLY_INSTANCE);

    List<Platform> platforms = platformDao.find(AdvancedCriteria.EMPTY_READONLY_INSTANCE);

    List<Node> nodes = nodeDao.find(AdvancedCriteria.EMPTY_READONLY_INSTANCE);

    Map<String, Object> response = new HashMap<String, Object>();
    response.put("markets", find);
    response.put("orphans", orphans);
    response.put("platforms", platforms);
    response.put("categories", categories);
    response.put("solutions", nodes);

    return new ModelAndView("admin/markets", response);

}

From source file:org.sakaiproject.genericdao.hibernate.HibernateBasicGenericDao.java

License:Apache License

/**
 * Build the Criteria object here to reduce code duplication
 * @param entityClass//  w  ww  .  j  a v  a  2s  . c  o m
 * @param search a Search object (possibly only partially complete)
 * @return a DetachedCriteria object
 */
private DetachedCriteria buildCriteria(Class<?> entityClass, Search search) {
    // Checks to see if the required params are set and throws exception if not
    if (search == null) {
        throw new IllegalArgumentException("search cannot be null");
    }

    // Build the criteria object
    DetachedCriteria criteria = DetachedCriteria.forClass(entityClass);

    // Only add in restrictions if there are some to add
    if (search.getRestrictions() != null && search.getRestrictions().length > 0) {
        Junction junction = Expression.conjunction(); // AND
        if (!search.conjunction) {
            // set to use disjunction
            junction = Expression.disjunction(); // OR
        }
        criteria.add(junction);

        // put in the restrictions
        for (int i = 0; i < search.getRestrictions().length; i++) {
            String property = search.getRestrictions()[i].property;
            Object value = search.getRestrictions()[i].value;
            if (property == null || value == null) {
                throw new IllegalArgumentException("restrictions property and value cannot be null or empty");
            }
            if (value.getClass().isArray()) {
                // special handling for "in" type comparisons
                Object[] objectArray = (Object[]) value;
                if (objectArray.length == 1) {
                    value = objectArray[0];
                } else if (objectArray.length > 1) {
                    if (Restriction.NOT_EQUALS == search.getRestrictions()[i].comparison) {
                        junction.add(Restrictions.not(Restrictions.in(property, objectArray)));
                    } else {
                        junction.add(Restrictions.in(property, objectArray));
                    }
                } else {
                    // do nothing for now, this is slightly invalid but not worth dying over
                }
            }

            if (!value.getClass().isArray()) {
                switch (search.getRestrictions()[i].comparison) {
                case Restriction.EQUALS:
                    junction.add(Restrictions.eq(property, value));
                    break;
                case Restriction.GREATER:
                    junction.add(Restrictions.gt(property, value));
                    break;
                case Restriction.LESS:
                    junction.add(Restrictions.lt(property, value));
                    break;
                case Restriction.LIKE:
                    junction.add(Restrictions.like(property, value));
                    break;
                case Restriction.NULL:
                    junction.add(Restrictions.isNull(property));
                    break;
                case Restriction.NOT_NULL:
                    junction.add(Restrictions.isNotNull(property));
                    break;
                case Restriction.NOT_EQUALS:
                    junction.add(Restrictions.ne(property, value));
                    break;
                }
            }
        }
    }

    // handle the sorting (sort param can be null for no sort)
    if (search.getOrders() != null) {
        for (int i = 0; i < search.getOrders().length; i++) {
            if (search.getOrders()[i].ascending) {
                criteria.addOrder(org.hibernate.criterion.Order.asc(search.getOrders()[i].property));
            } else {
                criteria.addOrder(org.hibernate.criterion.Order.desc(search.getOrders()[i].property));
            }
        }
    }

    return criteria;
}

From source file:org.sakaiproject.sitestats.impl.event.detailed.DetailedEventsManagerImpl.java

License:Educational Community License

private Optional<Criteria> basicCriteriaForTrackingParams(Session session, final TrackingParams params) {
    Criteria crit = session.createCriteria(DetailedEventImpl.class);
    if (StringUtils.isNotBlank(params.siteId)) {
        crit.add(Restrictions.eq(SITE_ID_COL, params.siteId));
    }//ww w.  j av a2  s . c o  m
    if (!params.events.isEmpty()) {
        crit.add(Restrictions.in(EVENT_ID_COL, params.events));
    }

    // Filter out any users who do not have the can be tracked permission in the site
    List<String> filtered = params.userIds.stream().filter(u -> statsAuthz.canUserBeTracked(params.siteId, u))
            .collect(Collectors.toList());
    // must have at least one user
    if (filtered.isEmpty()) {
        return Optional.empty();
    }
    crit.add(Restrictions.in(USER_ID_COL, filtered));

    if (!TrackingParams.NO_DATE.equals(params.startDate)) {
        crit.add(Restrictions.ge(EVENT_DATE_COL, Date.from(params.startDate)));
    }
    if (!TrackingParams.NO_DATE.equals(params.endDate)) {
        crit.add(Restrictions.lt(EVENT_DATE_COL, Date.from(params.endDate)));
    }

    // filter out anonymous events
    Set<String> anonEvents = regServ.getAnonymousEventIds();
    if (!anonEvents.isEmpty()) {
        crit.add(Restrictions.not(Restrictions.in(EVENT_ID_COL, anonEvents)));
    }

    return Optional.of(crit);
}

From source file:org.sculptor.framework.accessimpl.jpahibernate.JpaHibFindByConditionAccessImpl.java

License:Apache License

private Criterion makeCriterion(ConditionalCriteria crit) {
    if (crit == null) {
        return null;
    }/*w w  w. j  a v a 2  s  .c om*/

    ConditionalCriteria.Operator operator = crit.getOperator();
    if (Operator.Equal.equals(operator)) {
        return Restrictions.eq(makePathWithAlias(crit.getPropertyFullName()), crit.getFirstOperant());
    } else if (Operator.IgnoreCaseEqual.equals(operator)) {
        return Restrictions.eq(makePathWithAlias(crit.getPropertyFullName()), crit.getFirstOperant())
                .ignoreCase();
    } else if (Operator.LessThan.equals(operator)) {
        return Restrictions.lt(makePathWithAlias(crit.getPropertyFullName()), crit.getFirstOperant());
    } else if (Operator.LessThanOrEqual.equals(operator)) {
        return Restrictions.le(makePathWithAlias(crit.getPropertyFullName()), crit.getFirstOperant());
    } else if (Operator.GreatThan.equals(operator)) {
        return Restrictions.gt(makePathWithAlias(crit.getPropertyFullName()), crit.getFirstOperant());
    } else if (Operator.GreatThanOrEqual.equals(operator)) {
        return Restrictions.ge(makePathWithAlias(crit.getPropertyFullName()), crit.getFirstOperant());
    } else if (Operator.Like.equals(operator)) {
        // Hibernate bug HHH-5339 + PostgreSQL missing 'number like string' conversion
        return new NumericLikeExpression(makePathWithAlias(crit.getPropertyFullName()),
                crit.getFirstOperant().toString(), false);
    } else if (Operator.IgnoreCaseLike.equals(operator)) {
        // Hibernate bug HHH-5339 + PostgreSQL missing 'number like string' conversion
        return new NumericLikeExpression(makePathWithAlias(crit.getPropertyFullName()),
                crit.getFirstOperant().toString(), true);
    } else if (Operator.IsNull.equals(operator)) {
        return Restrictions.isNull(makePathWithAlias(crit.getPropertyFullName()));
    } else if (Operator.IsNotNull.equals(operator)) {
        return Restrictions.isNotNull(makePathWithAlias(crit.getPropertyFullName()));
    } else if (Operator.IsEmpty.equals(operator)) {
        return Restrictions.isEmpty(makePathWithAlias(crit.getPropertyFullName()));
    } else if (Operator.IsNotEmpty.equals(operator)) {
        return Restrictions.isNotEmpty(makePathWithAlias(crit.getPropertyFullName()));
    } else if (Operator.Not.equals(operator)) {
        return Restrictions.not(makeCriterion((ConditionalCriteria) crit.getFirstOperant()));
    } else if (Operator.Or.equals(operator) && crit.getFirstOperant() instanceof List<?>) {
        Disjunction disj = Restrictions.disjunction();
        List<?> disjList = (List<?>) crit.getFirstOperant();
        for (Object disjPart : disjList) {
            disj.add(makeCriterion((ConditionalCriteria) disjPart));
        }
        return disj;
    } else if (Operator.Or.equals(operator)) {
        return Restrictions.or(makeCriterion((ConditionalCriteria) crit.getFirstOperant()),
                makeCriterion((ConditionalCriteria) crit.getSecondOperant()));
    } else if (Operator.And.equals(operator) && crit.getFirstOperant() instanceof List<?>) {
        Conjunction conj = Restrictions.conjunction();
        List<?> conjList = (List<?>) crit.getFirstOperant();
        for (Object conjPart : conjList) {
            conj.add(makeCriterion((ConditionalCriteria) conjPart));
        }
        return conj;
    } else if (Operator.And.equals(operator)) {
        return Restrictions.and(makeCriterion((ConditionalCriteria) crit.getFirstOperant()),
                makeCriterion((ConditionalCriteria) crit.getSecondOperant()));
    } else if (Operator.In.equals(operator)) {
        if (crit.getFirstOperant() instanceof Collection<?>) {
            return Restrictions.in(makePathWithAlias(crit.getPropertyFullName()),
                    (Collection<?>) crit.getFirstOperant());
        } else {
            return Restrictions.in(makePathWithAlias(crit.getPropertyFullName()),
                    (Object[]) crit.getFirstOperant());
        }
    } else if (Operator.Between.equals(operator)) {
        return Restrictions.between(makePathWithAlias(crit.getPropertyFullName()), crit.getFirstOperant(),
                crit.getSecondOperant());
    } else if (Operator.DistinctRoot.equals(operator)) {
        realDistinctRoot = true;
        return null;
    } else if (Operator.ProjectionRoot.equals(operator)) {
        resultTransformer = Criteria.PROJECTION;
        return null;
    } else if (Operator.EqualProperty.equals(operator)) {
        return Restrictions.eqProperty(makePathWithAlias(crit.getPropertyFullName()),
                (String) crit.getFirstOperant());
    } else if (Operator.LessThanProperty.equals(operator)) {
        return Restrictions.ltProperty(makePathWithAlias(crit.getPropertyFullName()),
                (String) crit.getFirstOperant());
    } else if (Operator.LessThanOrEqualProperty.equals(operator)) {
        return Restrictions.leProperty(makePathWithAlias(crit.getPropertyFullName()),
                (String) crit.getFirstOperant());
    } else if (Operator.GreatThanProperty.equals(operator)) {
        return Restrictions.gtProperty(makePathWithAlias(crit.getPropertyFullName()),
                (String) crit.getFirstOperant());
    } else if (Operator.GreatThanOrEqualProperty.equals(operator)) {
        return Restrictions.geProperty(makePathWithAlias(crit.getPropertyFullName()),
                (String) crit.getFirstOperant());
    } else {
        return null;
    }
}

From source file:org.semtix.db.DBHandlerPerson.java

License:Open Source License

/**
 * Liefert eine Liste von Personen die seit i Semestern KEINEN Antrag gestellt haben. Wenn i==0, dann sind das Personen, die noch NIE einen Antrag gestellt haben.
 * @param i Wieviele Semester//  w w w. j a  v a2  s  .  c  o  m
 * @return Liste der Personen die in i Semestern KEINEN Antrag gestellt haben
 */
public List<Person> getListePersonenSeitSemesternOhneAntrag(int i) {

    //Letzte i Semester in einer Liste:
    Set<Integer> semesterIDs = bestimmeLetzteSemester(i);

    Session session = HibernateUtil.getSessionFactory().openSession();

    Criteria critAntrag = session.createCriteria(Antrag.class);

    if (null != semesterIDs && semesterIDs.size() > 0) {
        Property semesterId = Property.forName("semesterID");
        critAntrag.add(semesterId.in(semesterIDs));
    }

    //ntig weil sonst outer join doppelte resultate
    critAntrag.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);

    List<Antrag> antraegeDerSemester = critAntrag.list();

    //Personen und Antrge
    HashSet<Integer> personIds = new HashSet<>();
    for (Antrag a : antraegeDerSemester) {
        personIds.add(a.getPersonID());
    }

    //We are looking for persons that are not in the list:
    Criteria critPerson = session.createCriteria(Person.class);
    critPerson.add(Restrictions.eq("uni", UniConf.aktuelleUni));
    critPerson.add(Restrictions.not(Restrictions.in("personID", personIds)));
    critPerson.addOrder(Order.asc("nachname"));
    critAntrag.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);

    List<Person> personsNotInList = critPerson.list();

    session.close();

    return personsNotInList;

}

From source file:org.squashtest.tm.domain.search.CUFBridge.java

License:Open Source License

@SuppressWarnings("unchecked")
private List<CustomFieldValue> findCufValuesForType(Session session, Object value) {

    BindableEntity entityType = null;//  w ww.  j  av a 2s  .co  m
    Long id = null;

    if ("testcase".equals(type)) {
        TestCase testcase = (TestCase) value;
        id = testcase.getId();
        entityType = BindableEntity.TEST_CASE;

    } else if ("requirement".equals(type)) {
        RequirementVersion requirement = (RequirementVersion) value;
        id = requirement.getId();
        entityType = BindableEntity.REQUIREMENT_VERSION;
    }
    Criteria crit = session.createCriteria(CustomFieldValue.class).createAlias("binding", "binding")
            .createAlias("binding.customField", "cuf");
    crit.add(Restrictions.eq("boundEntityId", id)).add(Restrictions.eq("boundEntityType", entityType));

    SimpleExpression typeDropDownList = Restrictions.eq("cuf.inputType", InputType.DROPDOWN_LIST);
    if (inputType != null && inputType.equals(InputType.DROPDOWN_LIST.name())) {
        crit.add(typeDropDownList);
    } else {
        crit.add(Restrictions.not(typeDropDownList));
    }
    return crit.list();

}

From source file:org.web4thejob.orm.DataReaderServiceImpl.java

License:Open Source License

private org.hibernate.criterion.Criterion toHibernateCriterion(Criterion criterion, String alias) {
    org.hibernate.criterion.Criterion hibernate_criterion;
    String propertyName = criterion.getPropertyPath().getLastStep().getName();
    if (alias != null) {
        propertyName = alias + "." + propertyName;
    }/*from  w  w  w.ja v a 2 s  .  co m*/

    if (criterion.getCondition().equals(Condition.EQ)) {
        hibernate_criterion = Property.forName(propertyName).eq(criterion.getValue());
    } else if (criterion.getCondition().equals(Condition.NE)) {
        hibernate_criterion = Property.forName(propertyName).ne(criterion.getValue());
    } else if (criterion.getCondition().equals(Condition.GT)) {
        hibernate_criterion = Property.forName(propertyName).gt(criterion.getValue());
    } else if (criterion.getCondition().equals(Condition.GTE)) {
        hibernate_criterion = Property.forName(propertyName).ge(criterion.getValue());
    } else if (criterion.getCondition().equals(Condition.LT)) {
        hibernate_criterion = Property.forName(propertyName).lt(criterion.getValue());
    } else if (criterion.getCondition().equals(Condition.LTE)) {
        hibernate_criterion = Property.forName(propertyName).le(criterion.getValue());
    } else if (criterion.getCondition().equals(Condition.NL)) {
        hibernate_criterion = Property.forName(propertyName).isNull();
    } else if (criterion.getCondition().equals(Condition.NNL)) {
        hibernate_criterion = Property.forName(propertyName).isNotNull();
    } else if (criterion.getCondition().equals(Condition.SW)) {
        hibernate_criterion = Property.forName(propertyName).like(criterion.getValue().toString(),
                MatchMode.START);
    } else if (criterion.getCondition().equals(Condition.NSW)) {
        hibernate_criterion = Restrictions
                .not(Property.forName(propertyName).like(criterion.getValue().toString(), MatchMode.START));
    } else if (criterion.getCondition().equals(Condition.CN)) {
        hibernate_criterion = Property.forName(propertyName).like(criterion.getValue().toString(),
                MatchMode.ANYWHERE);
    } else if (criterion.getCondition().equals(Condition.NCN)) {
        hibernate_criterion = Restrictions
                .not(Property.forName(propertyName).like(criterion.getValue().toString(), MatchMode.ANYWHERE));
    } else if (criterion.getCondition().equals(Condition.EW)) {
        hibernate_criterion = Property.forName(propertyName).like(criterion.getValue().toString(),
                MatchMode.END);
    } else if (criterion.getCondition().equals(Condition.NEW)) {
        hibernate_criterion = Restrictions
                .not(Property.forName(propertyName).like(criterion.getValue().toString(), MatchMode.END));
    } else if (criterion.getCondition().equals(Condition.IN)) {
        hibernate_criterion = Restrictions.in(propertyName, (Collection) criterion.getValue());
    } else if (criterion.getCondition().equals(Condition.NIN)) {
        hibernate_criterion = Restrictions
                .not(Restrictions.in(propertyName, (Collection) criterion.getValue()));
    } else if (criterion.getCondition().equals(Condition.EX)
            || criterion.getCondition().equals(Condition.NEX)) {
        EntityMetadata target = criterion.getPropertyPath().getLastStep().getAssociatedEntityMetadata();
        Subquery subquery;
        if (criterion.getCondition().equals(Condition.EX)) {
            subquery = new Subquery(Subquery.SubqueryType.TYPE_EXISTS, target);
        } else {
            subquery = new Subquery(Subquery.SubqueryType.TYPE_NOT_EXISTS, target);
        }

        for (PropertyMetadata propertyMetadata : target.getPropertiesMetadata()) {
            if (criterion.getPropertyPath().getLastStep().isAssociatedWith(propertyMetadata)) {
                subquery.addCriterion(
                        ContextUtil.getMRS().getPropertyPath(target.getEntityType(),
                                new Path(propertyMetadata.getName())),
                        Condition.EQ, Subquery.MASTER_ID_PLACEHOLDER);
                break;
            }
        }
        if (subquery.getCriteria().isEmpty()) {
            throw new RuntimeException("subquery failed: " + criterion.toString());
        }

        hibernate_criterion = toHibernateSubcriterion(
                alias + "." + criterion.getPropertyPath().getLastStep().getName(), alias, subquery);
    } else {
        throw new RuntimeException("unknown condition encountered: " + criterion.getCondition().toString());
    }

    return hibernate_criterion;
}

From source file:org.webcurator.core.report.impl.CrawlerActivityReport.java

License:Apache License

/**
 * Generate the Crawler Activity Report/*from  ww  w  .  j  a va 2  s .c  o m*/
 * 
 * @param startDate Start date<br>Is inclusive and value is mandatory
 * @param endDate End date.<br> Is inclusive and value is mandatory
 * @param agencyName Name of Agency<br><code>null</code> value is accepted
 * @param userName Username<br><code>null</code> value is accepted
 * @return A <code>List</code> of <code>ResultSet</code>
 */
@SuppressWarnings("unchecked")
protected List<ResultSet> runReport(final Date startDate, final Date endDate, final String agencyName,
        final String userName) {

    List results = (List) getHibernateTemplate().execute(new HibernateCallback() {

        @SuppressWarnings("unchecked")
        public Object doInHibernate(Session session) throws HibernateException, SQLException {
            Criteria query = session.createCriteria(TargetInstance.class);
            Criteria owner = null;
            if (userName != null && !userName.equals("All users")) {
                owner = query.createCriteria("owner").add(Restrictions.eq("username", userName));
            }
            if (owner == null) {
                if (agencyName != null && !agencyName.equals("All agencies")) {
                    query.createCriteria("owner").createCriteria("agency")
                            .add(Restrictions.eq("name", agencyName));
                }
            } else {
                if (agencyName != null && !agencyName.equals("All agencies")) {
                    owner.createCriteria("agency").add(Restrictions.eq("name", agencyName));
                }
            }

            query.add(Restrictions.ge("actualStartTime", startDate));
            query.add(Restrictions.lt("actualStartTime", endDate));
            query.add(Restrictions.not(Restrictions.in("state",
                    new Object[] { TargetInstance.STATE_QUEUED, TargetInstance.STATE_SCHEDULED })));
            query.addOrder(Order.asc("actualStartTime"));

            List<TargetInstance> results = query.list();

            List realResults = new ArrayList<CrawlerActivityReportResultSet>(results.size());

            for (TargetInstance ti : results) {
                Date endDate = null;

                // Target has finished, calculate the end date; otherwise leave it as null.
                if (!"Running".equals(ti.getState()) && !"Stopping".equals(ti.getState())
                        && ti.getActualStartTime() != null && ti.getStatus() != null) {
                    endDate = new Date(ti.getActualStartTime().getTime() + ti.getStatus().getElapsedTime());
                }

                realResults.add(new CrawlerActivityReportResultSet(ti.getOid(), ti.getTarget().getName(),
                        ti.getState(), ti.getActualStartTime(), endDate, ti.getStatus().getElapsedTime(),
                        ti.getStatus().getDataDownloaded(), ti.getHarvestServer()));
            }

            return realResults;
        }

    });

    return results;
}