List of usage examples for org.hibernate.criterion DetachedCriteria setProjection
public DetachedCriteria setProjection(Projection projection)
From source file:de.forsthaus.backend.dao.impl.SecRolegroupDAOImpl.java
License:Open Source License
@Override public boolean isGroupInRole(SecGroup aGroup, SecRole aRole) { DetachedCriteria criteria = DetachedCriteria.forClass(SecRolegroup.class); criteria.add(Restrictions.eq("secGroup", aGroup)); criteria.add(Restrictions.eq("secRole", aRole)); criteria.setProjection(Projections.rowCount()); int count = DataAccessUtils.intResult(getHibernateTemplate().findByCriteria(criteria)); return count > 0; }
From source file:de.forsthaus.backend.dao.impl.SecUserroleDAOImpl.java
License:Open Source License
@Override public boolean isUserInRole(SecUser aUser, SecRole aRole) { DetachedCriteria criteria = DetachedCriteria.forClass(SecUserrole.class); criteria.add(Restrictions.eq("secUser", aUser)); criteria.add(Restrictions.eq("secRole", aRole)); criteria.setProjection(Projections.rowCount()); int count = DataAccessUtils.intResult(getHibernateTemplate().findByCriteria(criteria)); return count > 0; }
From source file:de.iteratec.iteraplan.businesslogic.reports.query.node.AttributeLeafNode.java
License:Open Source License
/** * Creates the {@link DetachedCriteria} for the {@link Comparator#NO_ASSIGNMENT} comparator. * //from w w w . j a va 2 s.c om * @param criteria the criteria to add the restrictions for * @param criterion the additional criterion, can be {@code null} * @return the {@link DetachedCriteria} for the {@link Comparator#NO_ASSIGNMENT} comparator */ protected DetachedCriteria createNoAssignmentCriteria(DetachedCriteria criteria, Criterion criterion) { final DetachedCriteria numberAvs = DetachedCriteria.forClass(getAttributeValueClass(), "numberAV"); numberAvs.createAlias("numberAV.attributeValueAssignments", "avas"); numberAvs.add(Restrictions.eq("attributeType.id", Integer.valueOf(getAttributeId()))); numberAvs.setProjection(Property.forName("avas.buildingBlock")); if (criterion != null) { numberAvs.add(criterion); } final String bbId = String.format("%s.%s", getResultTypeDBNameShortWithSuffix(), "id"); criteria.add(Subqueries.propertyNotIn(bbId, numberAvs)); return criteria; }
From source file:de.iteratec.iteraplan.businesslogic.reports.query.node.AttributeLeafNode.java
License:Open Source License
/** {@inheritDoc} */ @Override/*from w w w .j a va2 s .co m*/ DetachedCriteria getWhereCriteria(DetachedCriteria criteria) { if (getComparator() == Comparator.NO_ASSIGNMENT) { return createNoAssignmentCriteria(criteria, null); } final String associationPath = String.format("%s.%s", getResultTypeDBNameShortWithSuffix(), "attributeValueAssignments"); final String alias = String.format("%sAlias", "attributeValueAssignments"); criteria.createAlias(associationPath, alias, Criteria.INNER_JOIN); final String effectivePropertyName = String.format("%s.%s", alias, "attributeValue"); DetachedCriteria numberAvs = DetachedCriteria.forClass(getAttributeValueClass(), "numberAV"); numberAvs.add(Restrictions.eq("attributeType.id", Integer.valueOf(getAttributeId()))); numberAvs.add(this.getCriterionForComparator()); numberAvs.setProjection(Property.forName("id")); criteria.add(Subqueries.propertyIn(effectivePropertyName, numberAvs)); return criteria; }
From source file:de.iteratec.iteraplan.businesslogic.reports.query.node.ResponsibilityAttributeLeafNode.java
License:Open Source License
private Criterion createUserCriterion() { final DetachedCriteria user = DetachedCriteria.forClass(User.class, "user"); user.add(new IteraplanLikeExpression("user.loginName", (String) getProcessedPattern(), true)); user.setProjection(Property.forName("user.id")); final DetachedCriteria userGroup = DetachedCriteria.forClass(UserGroup.class, "userGroup"); userGroup.add(new IteraplanLikeExpression("userGroup.name", (String) getProcessedPattern(), true)); userGroup.setProjection(Property.forName("userGroup.id")); return Restrictions.or(Subqueries.propertyIn("userEntity", user), Subqueries.propertyIn("userEntity", userGroup)); }
From source file:de.iteratec.iteraplan.businesslogic.reports.query.node.SealLeafNode.java
License:Open Source License
/** * Returns the Criterion for the outdated entities. * //from w ww. j av a2 s .c om * @param effectivePropertyName the field name representing the seal state * @return the Criterion for the outdated entities */ private Criterion getOutdatedCriterion(String effectivePropertyName) { int expirationInDays = IteraplanProperties.getIntProperty(IteraplanProperties.SEAL_EXPIRATION_DAYS); Date minusDays = new DateTime().minusDays(expirationInDays).toDate(); String idPropertyName = String.format("%s.%s", getResultTypeDBNameShortWithSuffix(), "id"); final DetachedCriteria maxSealDate = DetachedCriteria.forClass(Seal.class, "seal"); maxSealDate.setProjection(Projections.max("seal.date")); maxSealDate.add(Restrictions.eqProperty("seal.bb", idPropertyName)); final DetachedCriteria lastSeal = DetachedCriteria.forClass(Seal.class, "lastSeal"); lastSeal.add(Subqueries.propertyEq("lastSeal.date", maxSealDate)); lastSeal.add(Restrictions.eqProperty("lastSeal.bb", idPropertyName)); lastSeal.add(Restrictions.le("lastSeal.date", minusDays)); lastSeal.setProjection(Projections.distinct(Property.forName("lastSeal.bb"))); Criterion outdatedCriterion = Subqueries.propertyIn(idPropertyName, lastSeal); Criterion valid = Restrictions.eq(effectivePropertyName, SealState.VALID.toString()); return Restrictions.and(valid, outdatedCriterion); }
From source file:debop4k.data.orm.hibernate.dao.HibernateAsyncDao.java
License:Apache License
/** * ? ? {@link DetachedCriteria} ?? ROW COUNT . */// w w w. j a v a 2 s . c o m public Promise<Long, Exception> countAsync(@NonNull DetachedCriteria dc) { return uniqueResultAsync(dc.setProjection(Projections.rowCount())); }
From source file:dk.teachus.backend.dao.hibernate.HibernateBookingDAO.java
License:Apache License
@Transactional(readOnly = true) public int getBookingCount(Period period) { DetachedCriteria c = DetachedCriteria.forClass(BookingImpl.class); c.add(Restrictions.eq("period", period)); c.setProjection(Projections.count("id")); int count = getCount(c); return count; }
From source file:edu.northwestern.bioinformatics.studycalendar.dao.StudyDao.java
License:BSD License
@SuppressWarnings({ "unchecked" }) private Collection<Integer> searchForVisibleIds(VisibleStudyParameters parameters, String search, boolean includeManaging, boolean includeParticipating, boolean includeSpecific) { if (log.isDebugEnabled()) { log.debug("Searching visible studies for {} with {}", parameters, search == null ? "no term" : "term \"" + search + '"'); if (!includeManaging) log.debug("- Excluding managing"); if (!includeParticipating) log.debug("- Excluding participating"); if (!includeSpecific) log.debug("- Excluding specific studies"); }/*from w w w . j a v a 2 s.c om*/ List<DetachedCriteria> separateCriteria = new LinkedList<DetachedCriteria>(); if (parameters.isAllManagingSites() && includeManaging) { if (search == null) { return null; // shortcut for all } else { separateCriteria.add(criteria().add(searchRestriction(search))); } } else { // These are implemented as separate queries and then merged because // the criteria are too complex to reliably express in a single statement. if (includeSpecific && !parameters.getSpecificStudyIdentifiers().isEmpty()) { separateCriteria.add(criteria() .add(MoreRestrictions.in("assignedIdentifier", parameters.getSpecificStudyIdentifiers()))); } if (includeManaging && !parameters.getManagingSiteIdentifiers().isEmpty()) { separateCriteria.add(criteria().createAlias("managingSites", "ms", Criteria.LEFT_JOIN) .add(Restrictions.disjunction() .add(MoreRestrictions.in("ms.assignedIdentifier", parameters.getManagingSiteIdentifiers())) .add(Restrictions.isNull("ms.assignedIdentifier")) // <- unmanaged studies )); } if (includeParticipating) { if (parameters.isAllParticipatingSites()) { separateCriteria .add(criteria().createAlias("studySites", "ss").add(Restrictions.isNotNull("ss.id"))); } else if (!parameters.getParticipatingSiteIdentifiers().isEmpty()) { separateCriteria.add(criteria().createAlias("studySites", "ss").createAlias("ss.site", "s") .add(MoreRestrictions.in("s.assignedIdentifier", parameters.getParticipatingSiteIdentifiers()))); } } for (DetachedCriteria criteria : separateCriteria) { if (search != null) { criteria.add(searchRestriction(search)); } } } Set<Integer> ids = new LinkedHashSet<Integer>(); for (DetachedCriteria criteria : separateCriteria) { ids.addAll(getHibernateTemplate().findByCriteria(criteria.setProjection(Projections.id()))); } log.debug("Found IDs {}", ids); return ids; }
From source file:edu.uoc.dao.impl.MeetingRoomDaoImpl.java
@Override public List<MeetingRoom> findbyForm(SearchMeeting searchMeeting, List<Room> ids_room) { String topic = searchMeeting.getTopic(); Room room = searchMeeting.getRoom(); //Convert TimeStamp to Date Timestamp tsStart = Util.converToTimestamp(searchMeeting.getStart_meeting(), logger); Timestamp tsEnd = Util.converToTimestamp(searchMeeting.getEnd_meeting(), logger); Criteria criteria;/*from w w w. jav a 2s . c o m*/ criteria = this.getSession().createCriteria(MeetingRoom.class, "meeting"); criteria.add(Restrictions.eq("meeting.finished", (byte) 1)); criteria.add(Restrictions.eq("meeting.recorded", (byte) 1)); if (tsStart != null) { criteria.add(Restrictions.ge("meeting.start_meeting", tsStart)); } if (tsEnd != null) { criteria.add(Restrictions.le("meeting.end_meeting", tsEnd)); } if (topic != null && topic.length() > 0) { criteria.add(Restrictions.like("meeting.topic", "%" + topic + "%")); } if (room != null && room.getId() > 0) { criteria.add(Restrictions.eq("meeting.id_room", room)); } else { criteria.add(Restrictions.in("meeting.id_room", ids_room)); } if (searchMeeting.getParticipants() != null && searchMeeting.getParticipants().length() > 0) { DetachedCriteria subCriteria = DetachedCriteria.forClass(UserMeeting.class, "userMeeting"); subCriteria.createAlias("userMeeting.pk.meeting", "userMeeting.id"); subCriteria.setProjection(Projections.projectionList().add(Projections.property("userMeeting.id"))); subCriteria.add(Restrictions.eqProperty("meeting.id", "userMeeting.id")); DetachedCriteria subCriteriaUser = DetachedCriteria.forClass(User.class, "user"); subCriteriaUser.setProjection(Projections.projectionList().add(Projections.property("user.id"))); subCriteriaUser.add(Restrictions.like("user.fullname", "%" + searchMeeting.getParticipants() + "%")); subCriteriaUser.add(Restrictions.eqProperty("user.id", "userMeeting.pk.user.id")); subCriteria.add(Subqueries.exists(subCriteriaUser)); criteria.add(Subqueries.exists(subCriteria)); } logger.info("Criteria " + criteria.toString()); return criteria.list(); }