Example usage for org.hibernate.criterion Restrictions between

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

Introduction

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

Prototype

public static Criterion between(String propertyName, Object low, Object high) 

Source Link

Document

Apply a "between" constraint to the named property

Usage

From source file:org.projectforge.fibu.AuftragDao.java

License:Open Source License

private List<AuftragDO> getList(final BaseSearchFilter filter, final boolean checkAccess) {
    final AuftragFilter myFilter;
    if (filter instanceof AuftragFilter) {
        myFilter = (AuftragFilter) filter;
    } else {/*from  w w  w  .  j  a va 2s  .  co  m*/
        myFilter = new AuftragFilter(filter);
    }
    final QueryFilter queryFilter = new QueryFilter(myFilter);
    if (myFilter.getYear() > 1900) {
        final Calendar cal = DateHelper.getUTCCalendar();
        cal.set(Calendar.YEAR, myFilter.getYear());
        java.sql.Date lo = null;
        java.sql.Date hi = null;
        cal.set(Calendar.DAY_OF_YEAR, 1);
        lo = new java.sql.Date(cal.getTimeInMillis());
        final int lastDayOfYear = cal.getActualMaximum(Calendar.DAY_OF_YEAR);
        cal.set(Calendar.DAY_OF_YEAR, lastDayOfYear);
        hi = new java.sql.Date(cal.getTimeInMillis());
        queryFilter.add(Restrictions.between("angebotsDatum", lo, hi));
    }
    queryFilter.addOrder(Order.desc("nummer"));
    Boolean vollstaendigFakturiert = null;
    if (myFilter.isShowBeauftragtNochNichtVollstaendigFakturiert() == true) {
        queryFilter.add(Restrictions.not(Restrictions.in("auftragsStatus",
                new AuftragsStatus[] { AuftragsStatus.ABGELEHNT, AuftragsStatus.ERSETZT, AuftragsStatus.GELEGT,
                        AuftragsStatus.GROB_KALKULATION, AuftragsStatus.IN_ERSTELLUNG })));
        vollstaendigFakturiert = false;
    } else if (myFilter.isShowNochNichtVollstaendigFakturiert() == true) {
        queryFilter.add(Restrictions.not(Restrictions.in("auftragsStatus",
                new AuftragsStatus[] { AuftragsStatus.ABGELEHNT, AuftragsStatus.ERSETZT })));
        vollstaendigFakturiert = false;
    } else if (myFilter.isShowVollstaendigFakturiert() == true) {
        vollstaendigFakturiert = true;
    } else if (myFilter.isShowAbgelehnt() == true) {
        queryFilter.add(Restrictions.eq("auftragsStatus", AuftragsStatus.ABGELEHNT));
    } else if (myFilter.isShowAbgeschlossenNichtFakturiert() == true) {
        queryFilter.createAlias("positionen", "position")
                .add(Restrictions.or(Restrictions.eq("auftragsStatus", AuftragsStatus.ABGESCHLOSSEN),
                        Restrictions.and(
                                Restrictions.eq("position.status", AuftragsPositionsStatus.ABGESCHLOSSEN),
                                Restrictions.eq("position.vollstaendigFakturiert", false))));
        vollstaendigFakturiert = false; // Und noch nicht fakturiert.
    } else if (myFilter.isShowAkquise() == true) {
        queryFilter.add(Restrictions.in("auftragsStatus", new AuftragsStatus[] { AuftragsStatus.GELEGT,
                AuftragsStatus.IN_ERSTELLUNG, AuftragsStatus.GROB_KALKULATION }));
    } else if (myFilter.isShowBeauftragt() == true) {
        queryFilter.add(Restrictions.in("auftragsStatus", new AuftragsStatus[] { AuftragsStatus.BEAUFTRAGT,
                AuftragsStatus.LOI, AuftragsStatus.ESKALATION }));
    } else if (myFilter.isShowErsetzt() == true) {
        queryFilter.add(Restrictions.eq("auftragsStatus", AuftragsStatus.ERSETZT));
    }
    final List<AuftragDO> list;
    if (checkAccess == true) {
        list = getList(queryFilter);
    } else {
        list = internalGetList(queryFilter);
    }
    if (vollstaendigFakturiert != null || myFilter.getAuftragsPositionsArt() != null) {
        final Boolean fakturiert = vollstaendigFakturiert;
        final AuftragFilter fil = myFilter;
        CollectionUtils.filter(list, new Predicate() {
            public boolean evaluate(final Object object) {
                final AuftragDO auftrag = (AuftragDO) object;
                if (fil.getAuftragsPositionsArt() != null) {
                    boolean match = false;
                    if (CollectionUtils.isNotEmpty(auftrag.getPositionen()) == true) {
                        for (final AuftragsPositionDO position : auftrag.getPositionen()) {
                            if (fil.getAuftragsPositionsArt() == position.getArt()) {
                                match = true;
                                break;
                            }
                        }
                    }
                    if (match == false) {
                        return false;
                    }
                }
                if (fakturiert != null) {
                    return auftrag.isVollstaendigFakturiert() == fakturiert;
                }
                return true;
            }
        });
    }
    return list;
}

From source file:org.projectforge.fibu.kost.BuchungssatzDao.java

License:Open Source License

@Override
public List<BuchungssatzDO> getList(BaseSearchFilter filter) {
    accessChecker.checkIsLoggedInUserMemberOfGroup(ProjectForgeGroup.FINANCE_GROUP,
            ProjectForgeGroup.CONTROLLING_GROUP);
    final BuchungssatzFilter myFilter;
    if (filter instanceof BuchungssatzFilter) {
        myFilter = (BuchungssatzFilter) filter;
    } else {//from w w  w  .ja  v a2  s .  c o m
        myFilter = new BuchungssatzFilter(filter);
    }
    final QueryFilter queryFilter = new QueryFilter(filter);
    if (validateTimeperiod(myFilter) == false) {
        throw new UserException("fibu.buchungssatz.error.invalidTimeperiod");
    }
    if (myFilter.getFromMonth() < 0) {
        // Kein Von-Monat gesetzt.
        queryFilter.add(Restrictions.eq("year", myFilter.getFromYear()));
        queryFilter.add(Restrictions.between("month", 0, 11));
    } else if (myFilter.getToYear() > 0) {
        if (myFilter.getFromYear() == myFilter.getToYear()) {
            queryFilter.add(Restrictions.eq("year", myFilter.getFromYear()));
            queryFilter.add(Restrictions.between("month", myFilter.getFromMonth(), myFilter.getToMonth()));
        } else {
            // between but different years
            queryFilter.add(Restrictions.disjunction()
                    .add(Restrictions.and(Restrictions.eq("year", myFilter.getFromYear()),
                            Restrictions.ge("month", myFilter.getFromMonth())))
                    .add(Restrictions.and(Restrictions.eq("year", myFilter.getToYear()),
                            Restrictions.le("month", myFilter.getToMonth())))
                    .add(Restrictions.and(Restrictions.gt("year", myFilter.getFromYear()),
                            Restrictions.lt("year", myFilter.getToYear()))));
        }
    } else {
        // Nur Von-Monat gesetzt.
        queryFilter.add(Restrictions.eq("year", myFilter.getFromYear()));
        queryFilter.add(Restrictions.eq("month", myFilter.getFromMonth()));
    }
    queryFilter.addOrder(Order.asc("year")).addOrder(Order.asc("month")).addOrder(Order.asc("satznr"));
    final List<BuchungssatzDO> list = getList(queryFilter);
    return list;
}

From source file:org.projectforge.framework.persistence.api.QueryFilter.java

License:Open Source License

/**
 * Adds Expression.between for given time period.
 * //from  w w  w.  jav  a  2  s  .  c  o  m
 * @param dateField
 * @param year if <= 0 do nothing.
 * @param month if < 0 choose whole year, otherwise given month. (Calendar.MONTH);
 */
public void setYearAndMonth(final String dateField, final int year, final int month) {
    if (year > 0) {
        final Calendar cal = DateHelper.getUTCCalendar();
        cal.set(Calendar.YEAR, year);
        java.sql.Date lo = null;
        java.sql.Date hi = null;
        if (month >= 0) {
            cal.set(Calendar.MONTH, month);
            cal.set(Calendar.DAY_OF_MONTH, 1);
            lo = new java.sql.Date(cal.getTimeInMillis());
            final int lastDayOfMonth = cal.getActualMaximum(Calendar.DAY_OF_MONTH);
            cal.set(Calendar.DAY_OF_MONTH, lastDayOfMonth);
            hi = new java.sql.Date(cal.getTimeInMillis());
        } else {
            cal.set(Calendar.DAY_OF_YEAR, 1);
            lo = new java.sql.Date(cal.getTimeInMillis());
            final int lastDayOfYear = cal.getActualMaximum(Calendar.DAY_OF_YEAR);
            cal.set(Calendar.DAY_OF_YEAR, lastDayOfYear);
            hi = new java.sql.Date(cal.getTimeInMillis());
        }
        add(Restrictions.between(dateField, lo, hi));
    }
}

From source file:org.projectforge.plugins.teamcal.event.TeamEventDao.java

License:Open Source License

/**
 * The time period of the filter will be extended by one day. This is needed due to all day events which are stored in UTC. The additional
 * events in the result list not matching the time period have to be removed by caller!
 * @param filter//from   w  w w. j a  v a  2  s.  c  o  m
 * @param allDay
 * @return
 */
private QueryFilter buildQueryFilter(final TeamEventFilter filter) {
    final QueryFilter queryFilter = new QueryFilter(filter);
    final Collection<Integer> cals = filter.getTeamCals();
    if (CollectionUtils.isNotEmpty(cals) == true) {
        queryFilter.add(Restrictions.in("calendar.id", cals));
    } else if (filter.getTeamCalId() != null) {
        queryFilter.add(Restrictions.eq("calendar.id", filter.getTeamCalId()));
    }
    // Following period extension is needed due to all day events which are stored in UTC. The additional events in the result list not
    // matching the time period have to be removed by caller!
    Date startDate = filter.getStartDate();
    if (startDate != null) {
        startDate = new Date(startDate.getTime() - ONE_DAY);
    }
    Date endDate = filter.getEndDate();
    if (endDate != null) {
        endDate = new Date(endDate.getTime() + ONE_DAY);
    }
    // limit events to load to chosen date view.
    if (startDate != null && endDate != null) {
        if (filter.isOnlyRecurrence() == false) {
            queryFilter.add(Restrictions.or(
                    (Restrictions.or(Restrictions.between("startDate", startDate, endDate),
                            Restrictions.between("endDate", startDate, endDate))),
                    // get events whose duration overlap with chosen duration.
                    (Restrictions.and(Restrictions.le("startDate", startDate),
                            Restrictions.ge("endDate", endDate)))));
        } else {
            queryFilter.add(
                    // "startDate" < endDate && ("recurrenceUntil" == null ||"recurrenceUnti" > startDate)
                    (Restrictions.and(Restrictions.lt("startDate", endDate),
                            Restrictions.or(Restrictions.isNull("recurrenceUntil"),
                                    Restrictions.gt("recurrenceUntil", startDate)))));
        }
    } else if (startDate != null) {
        queryFilter.add(Restrictions.ge("startDate", startDate));
    } else if (endDate != null) {
        queryFilter.add(Restrictions.le("startDate", endDate));
    }
    queryFilter.addOrder(Order.desc("startDate"));
    if (log.isDebugEnabled() == true) {
        log.debug(ToStringBuilder.reflectionToString(filter));
    }
    return queryFilter;
}

From source file:org.projectforge.timesheet.TimesheetDao.java

License:Open Source License

public QueryFilter buildQueryFilter(final TimesheetFilter filter) {
    final QueryFilter queryFilter = new QueryFilter(filter);
    if (filter.getUserId() != null) {
        final PFUserDO user = new PFUserDO();
        user.setId(filter.getUserId());/*from   w w w .  j a  v  a2s. com*/
        queryFilter.add(Restrictions.eq("user", user));
    }
    if (filter.getStartTime() != null && filter.getStopTime() != null) {
        queryFilter.add(Restrictions.between("startTime", filter.getStartTime(), filter.getStopTime()));
    } else if (filter.getStartTime() != null) {
        queryFilter.add(Restrictions.ge("startTime", filter.getStartTime()));
    } else if (filter.getStopTime() != null) {
        queryFilter.add(Restrictions.le("startTime", filter.getStopTime()));
    }
    if (filter.getTaskId() != null) {
        if (filter.isRecursive() == true) {
            final TaskNode node = taskTree.getTaskNodeById(filter.getTaskId());
            final List<Integer> taskIds = node.getDescendantIds();
            taskIds.add(node.getId());
            queryFilter.add(Restrictions.in("task.id", taskIds));
            if (log.isDebugEnabled() == true) {
                log.debug("search in tasks: " + taskIds);
            }
        } else {
            queryFilter.add(Restrictions.eq("task.id", filter.getTaskId()));
        }
    }
    if (filter.getOrderType() == OrderDirection.DESC) {
        queryFilter.addOrder(Order.desc("startTime"));
    } else {
        queryFilter.addOrder(Order.asc("startTime"));
    }
    if (log.isDebugEnabled() == true) {
        log.debug(ToStringBuilder.reflectionToString(filter));
    }
    return queryFilter;
}

From source file:org.remus.marketplace.scheduling.GenerateStatisticsJob.java

License:Open Source License

private void createClickStatistics(Integer id, File folder, Node node, Calendar instance) {
    Map<Date, Integer> map = new HashMap<Date, Integer>();
    for (int i = 0, n = month; i < n; i++) {
        Calendar instance2 = Calendar.getInstance();
        instance2.setTime(new Date());
        instance2.add(Calendar.MONTH, i * -1);
        map.put(instance2.getTime(), 0);
    }//from   w w w.  j  a v a2 s .  c  o m
    AdvancedCriteria criteria = new AdvancedCriteria()
            .addRestriction(Restrictions.between(Clickthrough.TIME, instance.getTime(), new Date()))
            .addRestriction(Restrictions.eq(Clickthrough.NODE, node));
    ProjectionList projectionList = Projections.projectionList();
    projectionList.add(Projections.count(Clickthrough.NODE));

    projectionList
            .add(Projections.sqlGroupProjection("month({alias}.time) as month, year({alias}.time) as year",
                    "month({alias}.time), year({alias}.time)", new String[] { "month", "year" },
                    new Type[] { Hibernate.INTEGER, Hibernate.INTEGER }));
    criteria.setProjection(projectionList);

    List<Object> query = clickthroughDao.query(criteria);
    for (Object object : query) {
        Object[] data = (Object[]) object;
        Integer count = (Integer) data[0];
        Integer month = (Integer) data[1];
        Integer year = (Integer) data[2];
        Set<Date> keySet = map.keySet();
        for (Date date : keySet) {
            Calendar instance2 = Calendar.getInstance();
            instance2.setTime(date);
            if (instance2.get(Calendar.YEAR) == year && instance2.get(Calendar.MONTH) == month - 1) {
                map.put(date, count);
            }
        }

    }

    DefaultCategoryDataset data = new DefaultCategoryDataset();
    List<Date> keySet = new ArrayList<Date>(map.keySet());
    Collections.sort(keySet, new Comparator<Date>() {

        @Override
        public int compare(Date o1, Date o2) {
            return o1.compareTo(o2);
        }
    });
    for (Date date : keySet) {
        Integer integer = map.get(date);
        Calendar instance2 = Calendar.getInstance();
        instance2.setTime(date);
        int year = instance2.get(Calendar.YEAR);
        int month = instance2.get(Calendar.MONTH) + 1;
        data.addValue(integer, "Column1", month + "-" + year);
    }

    JFreeChart createBarChart = ChartFactory.createBarChart("Clicks", "Month", "", data,
            PlotOrientation.VERTICAL, false, false, false);

    File file = new File(folder, "clicks_" + id + ".png");
    if (file.exists()) {
        file.delete();
    }
    try {
        ChartUtilities.saveChartAsPNG(file, createBarChart, 500, 300);
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

}

From source file:org.remus.marketplace.scheduling.GenerateStatisticsJob.java

License:Open Source License

private void createDownloadStatistics(Integer id, File folder, Node node, Calendar instance) {
    Map<Date, Integer> map = new HashMap<Date, Integer>();
    for (int i = 0, n = month; i < n; i++) {
        Calendar instance2 = Calendar.getInstance();
        instance2.setTime(new Date());
        instance2.add(Calendar.MONTH, i * -1);
        map.put(instance2.getTime(), 0);
    }//from   ww  w.  ja  va2s  .c o m
    AdvancedCriteria criteria = new AdvancedCriteria()
            .addRestriction(Restrictions.between(Download.TIME, instance.getTime(), new Date()))
            .addRestriction(Restrictions.eq(Download.NODE, node));
    ProjectionList projectionList = Projections.projectionList();
    projectionList.add(Projections.count(Download.NODE));

    projectionList
            .add(Projections.sqlGroupProjection("month({alias}.time) as month, year({alias}.time) as year",
                    "month({alias}.time), year({alias}.time)", new String[] { "month", "year" },
                    new Type[] { Hibernate.INTEGER, Hibernate.INTEGER }));
    criteria.setProjection(projectionList);

    List<Object> query = downloadDao.query(criteria);
    for (Object object : query) {
        Object[] data = (Object[]) object;
        Integer count = (Integer) data[0];
        Integer month = (Integer) data[1];
        Integer year = (Integer) data[2];
        Set<Date> keySet = map.keySet();
        for (Date date : keySet) {
            Calendar instance2 = Calendar.getInstance();
            instance2.setTime(date);
            if (instance2.get(Calendar.YEAR) == year && instance2.get(Calendar.MONTH) == month - 1) {
                map.put(date, count);
            }
        }

    }

    DefaultCategoryDataset data = new DefaultCategoryDataset();
    List<Date> keySet = new ArrayList<Date>(map.keySet());
    Collections.sort(keySet, new Comparator<Date>() {

        @Override
        public int compare(Date o1, Date o2) {
            return o1.compareTo(o2);
        }
    });
    for (Date date : keySet) {
        Integer integer = map.get(date);
        Calendar instance2 = Calendar.getInstance();
        instance2.setTime(date);
        int year = instance2.get(Calendar.YEAR);
        int month = instance2.get(Calendar.MONTH) + 1;
        data.addValue(integer, "Column1", month + "-" + year);
    }

    JFreeChart createBarChart = ChartFactory.createBarChart("Downloads", "Month", "", data,
            PlotOrientation.VERTICAL, false, false, false);

    File file = new File(folder, "download_" + id + ".png");
    if (file.exists()) {
        file.delete();
    }
    try {
        ChartUtilities.saveChartAsPNG(file, createBarChart, 500, 300);
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

}

From source file:org.sakaiproject.signup.dao.SignupMeetingDaoImpl.java

License:Educational Community License

/**
 * {@inheritDoc}//from www. jav  a  2  s .  c  om
 */
public int getAutoReminderTotalEventCounts(Date startDate, Date endDate) {
    DetachedCriteria criteria = DetachedCriteria.forClass(SignupMeeting.class)
            .setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY).add(Restrictions.eq("autoReminder", true))
            .add(Restrictions.between("startTime", startDate, endDate)).setProjection(Projections.rowCount());

    List ls = getHibernateTemplate().findByCriteria(criteria);
    if (ls == null || ls.isEmpty())
        return 0;

    Integer rowCount = (Integer) ls.get(0);

    return rowCount != null ? rowCount.intValue() : 0;
}

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

License:Apache License

private Criterion makeCriterion(ConditionalCriteria crit) {
    if (crit == null) {
        return null;
    }/*from  w ww  .j av a2  s  .  com*/

    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.shredzone.cilla.service.impl.TagServiceImpl.java

License:Open Source License

@SuppressWarnings("unchecked")
@Transactional(readOnly = true)//from w  w w .ja  v a2s. c om
@Cacheable("tagCloud")
@Override
public Map<Tag, Float> createTagCloud(long limit) {
    Date now = new Date();
    Date limitDate = new Date(now.getTime() - limit);

    List<Page> pages = pageDao.criteria()
            .add(Restrictions.and(Restrictions.isNotNull("publication"),
                    Restrictions.between("publication", limitDate, now)))
            .add(Restrictions.or(Restrictions.isNull("expiration"), Restrictions.gt("expiration", now)))
            .add(Restrictions.isNotEmpty("tags")).list();

    return computeTagCloud(pages, limitDate.getTime(), limit);
}