List of usage examples for org.hibernate.criterion Restrictions isNotNull
public static Criterion isNotNull(String propertyName)
From source file:org.osiam.resources.helper.SingularFilterChain.java
License:Apache License
@Override public Criterion buildCriterion() { switch (constraint) { case CONTAINS: return Restrictions.like(key, "%" + value + "%"); case STARTS_WITH: return Restrictions.like(key, value + "%"); case EQUALS:/* w w w. j av a 2 s . co m*/ return Restrictions.eq(key, value); case GREATER_EQUALS: return Restrictions.ge(key, value); case GREATER_THAN: return Restrictions.gt(key, value); case LESS_EQUALS: return Restrictions.le(key, value); case LESS_THAN: return Restrictions.lt(key, value); case PRESENT: return Restrictions.isNotNull(key); default: throw new IllegalArgumentException("Unknown constraint."); } }
From source file:org.picketlink.idm.impl.store.hibernate.HibernateIdentityStoreImpl.java
License:Open Source License
public Criteria prepareResolveRelationshipsCriteria(IdentityStoreInvocationContext ctx, IdentityObject identity, IdentityObjectRelationshipType type, boolean parent, boolean named, String name, IdentityObjectSearchCriteria searchCriteria) throws IdentityException { HibernateIdentityObject hio = safeGet(ctx, identity); Criteria criteria = getHibernateSession(ctx).createCriteria(HibernateIdentityObjectRelationship.class); criteria.setCacheable(true);/* www. j av a 2 s . c o m*/ if (type != null) { HibernateIdentityObjectRelationshipType hibernateType = getHibernateIdentityObjectRelationshipType(ctx, type); criteria.add(Restrictions.eq("type", hibernateType)); } if (name != null) { criteria.add(Restrictions.eq("name.name", name)); } else if (named) { criteria.add(Restrictions.isNotNull("name")); } else { criteria.add(Restrictions.isNull("name")); } if (parent) { criteria.add(Restrictions.eq("fromIdentityObject", hio)); } else { criteria.add(Restrictions.eq("toIdentityObject", hio)); } criteria.setFetchMode("fromIdentityObject", FetchMode.JOIN); criteria.setFetchMode("toIdentityObject", FetchMode.JOIN); if (searchCriteria != null && searchCriteria.isPaged() && !searchCriteria.isFiltered()) { if (searchCriteria.getMaxResults() > 0) { criteria.setMaxResults(searchCriteria.getMaxResults()); } criteria.setFirstResult(searchCriteria.getFirstResult()); } if (searchCriteria != null && searchCriteria.isSorted()) { if (parent) { criteria.createAlias("toIdentityObject", "io"); if (searchCriteria.isAscending()) { criteria.addOrder(Order.asc("io.name")); } else { criteria.addOrder(Order.desc("io.name")); } } else { criteria.createAlias("fromIdentityObject", "io"); if (searchCriteria.isAscending()) { criteria.addOrder(Order.asc("io.name")); } else { criteria.addOrder(Order.desc("io.name")); } } } return criteria; }
From source file:org.projectforge.address.AddressDao.java
License:Open Source License
/** * Get the birthdays of address entries. * @param fromDate Search for birthdays from given date (ignoring the year). * @param toDate Search for birthdays until given date (ignoring the year). * @param max Maximum number of result entries. * @param all If false, only the birthdays of favorites will be returned. * @return The entries are ordered by date of year and name. *//*w ww . j ava 2 s. co m*/ public Set<BirthdayAddress> getBirthdays(final Date fromDate, final Date toDate, final int max, final boolean all) { final QueryFilter filter = new QueryFilter(); filter.add(Restrictions.isNotNull("birthday")); final List<AddressDO> list = getList(filter); // Uses not Collections.sort because every comparison needs Calendar.getDayOfYear(). final Set<BirthdayAddress> set = new TreeSet<BirthdayAddress>(); final Set<Integer> favorites = getFavorites(); final DateHolder from = new DateHolder(fromDate); final DateHolder to = new DateHolder(toDate); DateHolder dh; final int fromMonth = from.getMonth(); final int fromDayOfMonth = from.getDayOfMonth(); final int toMonth = to.getMonth(); final int toDayOfMonth = to.getDayOfMonth(); for (final AddressDO address : list) { if (all == false && favorites.contains(address.getId()) == false) { // Address is not a favorite address, so ignore it. continue; } dh = new DateHolder(address.getBirthday()); final int month = dh.getMonth(); final int dayOfMonth = dh.getDayOfMonth(); if (DateHelper.dateOfYearBetween(month, dayOfMonth, fromMonth, fromDayOfMonth, toMonth, toDayOfMonth) == false) { continue; } final BirthdayAddress ba = new BirthdayAddress(address); if (favorites.contains(address.getId()) == true) { ba.setFavorite(true); } set.add(ba); } return set; }
From source file:org.projectforge.business.teamcal.event.TeamEventDao.java
License:Open Source License
/** * This method also returns recurrence events outside the time period of the given filter but affecting the * time-period (e. g. older recurrence events without end date or end date inside or after the given time period). If * calculateRecurrenceEvents is true, only the recurrence events inside the given time-period are returned, if false * only the origin recurrence event (may-be outside the given time-period) is returned. * * @param filter// w w w .j a va 2 s . c om * @param calculateRecurrenceEvents If true, recurrence events inside the given time-period are calculated. * @return list of team events (same as {@link #getList(BaseSearchFilter)} but with all calculated and matching * recurrence events (if calculateRecurrenceEvents is true). Origin events are of type {@link TeamEventDO}, * calculated events of type {@link TeamEvent}. */ public List<TeamEvent> getEventList(final TeamEventFilter filter, final boolean calculateRecurrenceEvents) { final List<TeamEvent> result = new ArrayList<TeamEvent>(); List<TeamEventDO> list = getList(filter); if (CollectionUtils.isNotEmpty(list) == true) { for (final TeamEventDO eventDO : list) { if (eventDO.hasRecurrence() == true) { // Added later. continue; } result.add(eventDO); } } final TeamEventFilter teamEventFilter = filter.clone().setOnlyRecurrence(true); final QueryFilter qFilter = buildQueryFilter(teamEventFilter); qFilter.add(Restrictions.isNotNull("recurrenceRule")); list = getList(qFilter); list = selectUnique(list); // add all abo events final List<TeamEventDO> recurrenceEvents = teamEventExternalSubscriptionCache .getRecurrenceEvents(teamEventFilter); if (recurrenceEvents != null && recurrenceEvents.size() > 0) { list.addAll(recurrenceEvents); } final TimeZone timeZone = ThreadLocalUserContext.getTimeZone(); if (list != null) { for (final TeamEventDO eventDO : list) { if (eventDO.hasRecurrence() == false) { log.warn("Shouldn't occur! Please contact developer."); // This event was handled above. continue; } if (calculateRecurrenceEvents == false) { result.add(eventDO); continue; } final Collection<TeamEvent> events = TeamEventUtils.getRecurrenceEvents( teamEventFilter.getStartDate(), teamEventFilter.getEndDate(), eventDO, timeZone); if (events == null) { continue; } for (final TeamEvent event : events) { if (matches(event.getStartDate(), event.getEndDate(), event.isAllDay(), teamEventFilter) == false) { continue; } result.add(event); } } } return result; }
From source file:org.projectforge.plugins.teamcal.event.TeamEventDao.java
License:Open Source License
/** * @param filter//from w w w. j a v a2 s . c o m * @return list of team events (same as {@link #getList(BaseSearchFilter)} but with all calculated and matching recurrence events. */ public List<TeamEvent> getEventList(final TeamEventFilter filter) { final List<TeamEvent> result = new ArrayList<TeamEvent>(); List<TeamEventDO> list = getList(filter); if (CollectionUtils.isNotEmpty(list) == true) { for (final TeamEventDO eventDO : list) { if (eventDO.hasRecurrence() == true) { // Added later. continue; } result.add(eventDO); } } final TeamEventFilter teamEventFilter = filter.clone().setOnlyRecurrence(true); final QueryFilter qFilter = buildQueryFilter(teamEventFilter); qFilter.add(Restrictions.isNotNull("recurrenceRule")); list = getList(qFilter); list = selectUnique(list); final TimeZone timeZone = PFUserContext.getTimeZone(); if (list != null) { for (final TeamEventDO eventDO : list) { if (eventDO.hasRecurrence() == false) { log.warn("Shouldn't occur! Please contact developer."); // This event was handled above. continue; } final Collection<TeamEvent> events = TeamEventUtils.getRecurrenceEvents( teamEventFilter.getStartDate(), teamEventFilter.getEndDate(), eventDO, timeZone); if (events == null) { continue; } for (final TeamEvent event : events) { if (matches(event.getStartDate(), event.getEndDate(), event.isAllDay(), teamEventFilter) == false) { continue; } result.add(event); } } } return result; }
From source file:org.rebioma.server.services.OccurrenceDbImpl.java
License:Apache License
/** * Adds a {@link Set} of search {@link OccurrenceFilter} to the * {@link Criteria}// w w w . ja v a 2s.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.redis.shop.dao.impl.VechileDaoImpl.java
public List<Vechile> vechile_search(Map<String, Object> map, Pager pager) { Criteria criteria = getSession().createCriteria(Vechile.class); if (map.get("state") != null) { criteria.add(Restrictions.eq("state", map.get("state"))); }//w w w. ja va 2 s. c o m if (map.get("vechileNum") != null) { criteria.add(Restrictions.eq("vechileNum", map.get("vechileNum"))); } if (map.get("license") != null) { criteria.add(Restrictions.eq("license", map.get("license"))); } if (map.get("type") != null) { if (map.get("siteId") != null) { criteria.createAlias("site", "s"); criteria.add(Restrictions.eq("s.siteId", map.get("siteId"))); } else if (map.get("type").equals("site") && map.get("region") != null) { criteria.createAlias("site", "s"); criteria.add(Restrictions.eq("s.region", map.get("region"))); } if (map.get("centerId") != null) { criteria.createAlias("center", "ct"); criteria.add(Restrictions.eq("ct.centerId", map.get("centerId"))); } else if (map.get("type").equals("center") && map.get("region") != null) { criteria.createAlias("center", "c"); criteria.add(Restrictions.eq("c.region", map.get("region"))); } if (map.get("type").equals("site") && map.get("region") == null) { criteria.add(Restrictions.isNotNull("site")); } else if (map.get("type").equals("center") && map.get("region") == null) { criteria.add(Restrictions.isNotNull("center")); } } return criteria.setFirstResult(pager.getPageSize() * (pager.getPageNumber() - 1)) .setMaxResults(pager.getPageSize()).list(); }
From source file:org.redis.shop.dao.impl.VechileDaoImpl.java
public Integer vechile_search_count(Map<String, Object> map) { Criteria criteria = getSession().createCriteria(Vechile.class); if (map.get("state") != null) { criteria.add(Restrictions.eq("state", map.get("state"))); }//w ww. j ava 2s . co m if (map.get("vechileNum") != null) { criteria.add(Restrictions.eq("vechileNum", map.get("vechileNum"))); } if (map.get("license") != null) { criteria.add(Restrictions.eq("license", map.get("license"))); } if (map.get("type") != null) { if (map.get("siteId") != null) { criteria.createAlias("site", "s"); criteria.add(Restrictions.eq("s.siteId", map.get("siteId"))); } else if (map.get("type").equals("site") && map.get("region") != null) { criteria.createAlias("site", "s"); criteria.add(Restrictions.eq("s.region", map.get("region"))); } if (map.get("centerId") != null) { criteria.createAlias("center", "ct"); criteria.add(Restrictions.eq("ct.centerId", map.get("centerId"))); } else if (map.get("type").equals("center") && map.get("region") != null) { criteria.createAlias("center", "c"); criteria.add(Restrictions.eq("c.region", map.get("region"))); } if (map.get("type").equals("site") && map.get("region") == null) { criteria.add(Restrictions.isNotNull("site")); } else if (map.get("type").equals("center") && map.get("region") == null) { criteria.add(Restrictions.isNotNull("center")); } } return Integer.parseInt(((Long) criteria.setProjection(Projections.rowCount()).uniqueResult()) + ""); }
From source file:org.sakaiproject.assignment.impl.persistence.AssignmentRepositoryImpl.java
License:Educational Community License
@Override public long countAssignmentSubmissions(String assignmentId, Boolean graded, Boolean hasSubmissionDate, Boolean userSubmission, List<String> userIds) { Criteria criteria = sessionFactory.getCurrentSession().createCriteria(AssignmentSubmission.class) .setProjection(Projections.countDistinct("id")).add(Restrictions.eq("assignment.id", assignmentId)) .add(Restrictions.eq("submitted", Boolean.TRUE)).createAlias("submitters", "s"); if (graded != null) { criteria.add(Restrictions.eq("graded", graded)); }//w w w .ja v a2 s . c o m if (hasSubmissionDate != null) { criteria.add(hasSubmissionDate ? Restrictions.isNotNull("dateSubmitted") : Restrictions.isNull("dateSubmitted")); } if (userSubmission != null) { criteria.add(Restrictions.eq("userSubmission", userSubmission)); } if (userIds != null) { if (userIds.isEmpty()) { return 0; // if we have an empty list then we return always return 0 } else { criteria.add(HibernateCriterionUtils.CriterionInRestrictionSplitter("s.submitter", userIds)); } } return ((Number) criteria.uniqueResult()).longValue(); }
From source file:org.sakaiproject.config.impl.HibernateConfigItemDaoImpl.java
License:Educational Community License
@SuppressWarnings("unchecked") @Override/*from w ww. j a v a 2 s. c o m*/ public List<HibernateConfigItem> findPollOnByNode(String node, Date onOrAfter, Date before) { Criteria criteria = getSession().createCriteria(HibernateConfigItem.class) .add(Restrictions.eq("node", node)); if (onOrAfter == null && before == null) { criteria.add(Restrictions.isNotNull("pollOn")); } else { if (onOrAfter != null) { criteria.add(Restrictions.ge("pollOn", onOrAfter)); } if (before != null) { criteria.add(Restrictions.lt("pollOn", before)); } } return criteria.list(); }