Example usage for org.hibernate.criterion Restrictions lt

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

Introduction

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

Prototype

public static SimpleExpression lt(String propertyName, Object value) 

Source Link

Document

Apply a "less than" constraint to the named property

Usage

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

License:Educational Community License

@SuppressWarnings("unchecked")
public List<SignupMeeting> getSignupMeetingsInSite(String siteId, Date startDate, Date endDate) {
    DetachedCriteria criteria = DetachedCriteria.forClass(SignupMeeting.class)
            .setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY).add(Restrictions.ge("endTime", startDate))
            .add(Restrictions.lt("startTime", endDate)).addOrder(Order.asc("startTime"))
            .createCriteria("signupSites").add(Restrictions.eq("siteId", siteId));

    return (List<SignupMeeting>) getHibernateTemplate().findByCriteria(criteria);
}

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

License:Educational Community License

/**
 * {@inheritDoc}//from   w  w  w  .j a va  2 s . c  o  m
 */
@SuppressWarnings("unchecked")
public List<SignupMeeting> getSignupMeetingsInSites(List<String> siteIds, Date startDate, Date endDate) {
    DetachedCriteria criteria = DetachedCriteria.forClass(SignupMeeting.class)
            .setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY).add(Restrictions.ge("endTime", startDate))
            .add(Restrictions.lt("startTime", endDate)).addOrder(Order.asc("startTime"))
            .createCriteria("signupSites").add(Restrictions.in("siteId", siteIds));

    return (List<SignupMeeting>) getHibernateTemplate().findByCriteria(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));
    }//from  w  ww.j av  a  2s .  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;
    }//from www.  j  a  v a  2  s  .  c o  m

    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.search.strategy.AbstractSearchStrategy.java

License:Open Source License

@SuppressWarnings("unchecked")
@Override//from w  w w.j a v a  2s  .c  o m
public Set<Integer> fetchPageDays(SearchResultImpl result, Calendar calendar) throws CillaServiceException {
    if (calendar == null) {
        return Collections.emptySet();
    }

    Calendar start = DateUtils.beginningOfMonth(calendar);
    Calendar end = DateUtils.beginningOfNextMonth(calendar);

    Criteria crit = createCriteria(result);
    crit.add(Restrictions.ge(pageOrder.getColumn(), start.getTime()));
    crit.add(Restrictions.lt(pageOrder.getColumn(), end.getTime()));

    // Sadly there is no HQL function to get the calendary day of a timestamp,
    // so we have to do all the hard work ourselves, to avoid SQL dialects. :(
    crit.setProjection(Projections.property(pageOrder.getColumn()));

    Calendar cal = Calendar.getInstance(calendar.getTimeZone());

    Set<Integer> daysResult = new HashSet<>();
    for (Date day : (List<Date>) crit.list()) {
        cal.setTime(day);
        daysResult.add(cal.get(Calendar.DAY_OF_MONTH));
    }

    return daysResult;
}

From source file:org.squashtest.tm.internal.domain.report.common.hibernate.BelowDateCriterion.java

License:Open Source License

@Override
public Criterion makeCriterion() {
    try {/*from  w w  w . j  a  v a2s .  com*/
        Criterion result = null;

        Date arg = makeDate();

        result = Restrictions.lt(getAttributePath(), arg);

        return result;
    } catch (Exception e) {
        return null;
    }
}

From source file:org.traffic.server.handler.UpdateHandler.java

License:Open Source License

@SuppressWarnings("unchecked")
@Override/*from   w  w w. j  a va 2 s  . c  o  m*/
public void handleRequest(Request r) {

    // check if the client has a valid identification
    if (r.getClient() == null) {
        SocketCommunicator.writeOutput(getSocket(), "{'error': 'no valid identification'}");
        Log.e("UpdateHandler", "Error@handleRequest:no valid identification");
        return;
    }
    Session s = Database.session();
    s.beginTransaction();

    // getting the data of the client
    if (r.getData().containsKey("lat") && r.getData().containsKey("lon") && r.getData().containsKey("time")
            && r.getData().containsKey("speed")) {
        int bboxType = Integer.valueOf(r.getData().getString("bbox"));
        double lat = r.getData().getDouble("lat");
        double lon = r.getData().getDouble("lon");
        long time = r.getData().getLong("time");
        double speed = r.getData().getDouble("speed");
        boolean save = true;
        if (r.getData().containsKey("save")) {
            save = r.getData().getBoolean("save");
        }
        String hash = r.getID();
        Point p = GeomHelper.createPoint(lon, lat);
        UserData d = new UserData(new Date(time), p, speed, hash);

        // building the response
        Response res = new Response();
        RoadStrip rs = (RoadStrip) s.createCriteria(RoadStrip.class)
                .add(new DWithinExpression("way", p, 8.2E-4)).addOrder(LocalDistanceOrder.asc("distance", p))
                .setMaxResults(1).uniqueResult();

        if (rs != null) {
            List<UserData> prevData = (List<UserData>) s.createCriteria(UserData.class)
                    .add(Restrictions.eq("connectionhash", r.getID()))
                    .add(Restrictions.lt("time", new Date(time))).add(Restrictions.isNotNull("road_id"))
                    .addOrder(Order.desc("time")).list();

            // getting the driving direction
            boolean driveDirection = false;
            if (prevData.size() > 0) {
                UserData prev = prevData.get(0);
                if (prev.getRoad_id() == rs.getId()) {
                    driveDirection = (prev.getPosition().distance(rs.getWay().getStartPoint()) < d.getPosition()
                            .distance(rs.getWay().getStartPoint()));
                } else {
                    driveDirection = (prev.getPosition().distance(rs.getWay().getStartPoint()) > prev
                            .getPosition().distance(rs.getWay().getEndPoint()));
                }
            }

            // adding the current road to the response
            d.setRoad_id(rs.getId());
            Map<String, Object> map = new HashMap<String, Object>();
            map.put("id", rs.getId());
            int max = (rs.getRoad().getMaxspeed() != null) ? rs.getRoad().getMaxspeed() : 0;
            map.put("maxspeed", max);
            map.put("speed", rs.getBestSpeed(driveDirection).getSpeed());
            map.put("quality", rs.getBestSpeed(driveDirection).getCategory());
            res.append(map, "traffic");

            // surrounding congestions of the current road
            List<Congestion> congestions = new LinkedList<Congestion>();
            congestions.addAll(rs.getCongestions());

            if (bboxType != 1) {
                // adding all known neighbours to the response
                Criteria crit = s.createCriteria(RoadStrip.class).add(Restrictions.ne("id", rs.getId()));
                if (bboxType == 2) {
                    crit.add(SpatialRestrictions.intersects("way", rs.getWay()));
                } else {
                    crit.add(SpatialRestrictions.intersects("way", GeomHelper.createRectangle(p, 2000)));
                }

                List<RoadStrip> neighbours = (List<RoadStrip>) crit.list();
                // adding the neighbors to the output
                for (RoadStrip neighbour : neighbours) {
                    boolean direction = neighbour.getWay().getStartPoint().intersects(rs.getWay());
                    map = new HashMap<String, Object>();
                    map.put("id", neighbour.getId());
                    max = (neighbour.getRoad().getMaxspeed() != null) ? neighbour.getRoad().getMaxspeed() : 0;
                    map.put("maxspeed", max);
                    map.put("speed", neighbour.getBestSpeed(direction).getSpeed());
                    map.put("quality", neighbour.getBestSpeed(direction).getCategory());
                    res.append(map, "traffic");

                    // congestions of the neighbor
                    congestions.addAll(neighbour.getCongestions());
                }
            }

            // sending congestions to the client
            for (Congestion c : congestions) {
                map = new HashMap<String, Object>();
                map.put("lon", c.getPosition().getX());
                map.put("lat", c.getPosition().getY());
                map.put("type", c.getType());
                map.put("time", c.getReportingtime().getTime());
                map.put("id", c.getId());
                res.append(map, "congestions");
            }
        }

        // check if a route is active and has changed since the last request
        if (r.getClient().getRoute() != null && r.getClient().getRoute().isUpdated()) {
            res.append(true, "routing");
        }

        // send, clear and save
        SocketCommunicator.writeOutput(getSocket(), res.getData());
        if (save) {
            s.clear();
            s.save(d);
            Database.end(true);
        } else {
            Database.end(false);
        }
    } else {
        SocketCommunicator.writeOutput(getSocket(), "{error: 'missing arguments'}");
    }
}

From source file:org.traffic.services.SetDirectionService.java

License:Open Source License

@SuppressWarnings("unchecked")
@Override/*w  w  w  .  jav  a2s.co m*/
protected void serve() {
    Session s = Database.session();
    s.beginTransaction();
    // loading all data without driving direction
    List<UserData> lst = (List<UserData>) s.createCriteria(UserData.class)
            .add(Restrictions.or(Restrictions.isNull("to_start"), Restrictions.isNull("to_end"))).list();
    for (UserData data : lst) {
        if (data.getRoad_id() == null) {
            continue;
        }

        // searching previous message
        RoadStrip rs = (RoadStrip) s.load(RoadStrip.class, data.getRoad_id());
        List<UserData> lstPrev = (List<UserData>) s.createCriteria(UserData.class)
                .add(Restrictions.lt("time", data.getTime())).addOrder(Order.desc("time")).setMaxResults(1)
                .list();
        for (UserData prev : lstPrev) {

            // previous message on the same road
            if (prev.getRoad_id() == data.getRoad_id()) {
                double dist = data.getPosition().distance(rs.getWay().getStartPoint());
                double distPrev = prev.getPosition().distance(rs.getWay().getStartPoint());
                if (dist > distPrev) {
                    data.setTo_end(true);
                    data.setTo_start(false);
                } else {
                    data.setTo_end(false);
                    data.setTo_start(true);
                }
            } else {
                // previous message on another road
                double distStartPrev = prev.getPosition().distance(rs.getWay().getStartPoint());
                double distEndPrev = prev.getPosition().distance(rs.getWay().getEndPoint());
                if (distStartPrev > distEndPrev) {
                    data.setTo_end(false);
                    data.setTo_start(true);
                } else {
                    data.setTo_end(true);
                    data.setTo_start(false);
                }
            }
        }
        if (lstPrev.size() == 0) {
            data.setTo_end(true);
            data.setTo_start(true);
        }
    }
    Database.end(true);
    Log.i("SetDirections", lst.size() + " line(s) of UserData with directions refreshed");
}

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

License:Apache License

/**
 * Generate the Crawler Activity Report//from ww w  .  ja v a  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;
}

From source file:org.webcurator.domain.TargetDAOImpl.java

License:Apache License

/**
 * Find all the groups that need to be end dated.
 * @return A List of groups to be end dated.
 *///from   w  w w .  java2s  . c  o  m
@SuppressWarnings("unchecked")
public List<TargetGroup> findEndedGroups() {
    return getHibernateTemplate().executeFind(new HibernateCallback() {
        public Object doInHibernate(Session aSession) throws HibernateException, SQLException {
            List<TargetGroup> results = aSession.createCriteria(TargetGroup.class)
                    .add(Restrictions.ne("state", TargetGroup.STATE_ACTIVE))
                    .add(Restrictions.lt("toDate", new Date())).setFetchMode("schedules", FetchMode.JOIN)
                    .setFetchMode("parents", FetchMode.JOIN).setFetchMode("children", FetchMode.JOIN).list();

            log.debug("Found " + results.size() + " groups that need to be unscheduled");

            return results;
        }
    });
}