List of usage examples for org.hibernate.criterion Restrictions eqProperty
public static PropertyExpression eqProperty(String propertyName, String otherPropertyName)
From source file:de.escidoc.core.aa.business.filter.RoleFilter.java
License:Open Source License
/** * Evaluate a CQL term node.//from w ww.j av a 2s .c om * * @param node CQL node * @return Hibernate query reflecting the given CQL query * @throws InvalidSearchQueryException thrown if the given search query could not be translated into a SQL query */ @Override protected Criterion evaluate(final CQLTermNode node) throws InvalidSearchQueryException { Criterion result = null; final Object[] parts = criteriaMap.get(node.getIndex()); final String value = node.getTerm(); if (parts != null && !specialCriteriaNames.contains(node.getIndex())) { result = evaluate(node.getRelation(), (String) parts[1], value, (Integer) parts[0] == COMPARE_LIKE); } else { final String columnName = node.getIndex(); if (columnName != null) { if ("limited".equals(columnName)) { result = Boolean.parseBoolean(value) ? Restrictions.isNotEmpty("scopeDefs") : Restrictions.isEmpty("scopeDefs"); } else if ("granted".equals(columnName)) { final DetachedCriteria subQuery = DetachedCriteria.forClass(RoleGrant.class, "rg"); subQuery.setProjection(Projections.rowCount()); subQuery.add(Restrictions.eqProperty("escidocRole.id", "r.id")); result = Boolean.parseBoolean(value) ? Subqueries.lt(0L, subQuery) : Subqueries.eq(0L, subQuery); } else if (columnName.equals(Constants.FILTER_CREATION_DATE) || columnName.equals(Constants.FILTER_PATH_CREATION_DATE)) { result = evaluate(node.getRelation(), "creationDate", value != null && value.length() > 0 ? new Date(new DateTime(value).getMillis()) : null, false); } else { throw new InvalidSearchQueryException("unknown filter criteria: " + columnName); } } } return result; }
From source file:de.escidoc.core.aa.business.persistence.hibernate.HibernateEscidocRoleDao.java
License:Open Source License
/** * See Interface for functional description. * * @see EscidocRoleDaoInterface #retrieveRoles(java.util.Map, int, int, java.lang.String, * de.escidoc.core.common.util.list.ListSorting) */// ww w . j av a 2 s.co m @Override public List<EscidocRole> retrieveRoles(final Map<String, Object> criterias, final int offset, final int maxResults, final String orderBy, final ListSorting sorting) throws SqlDatabaseSystemException { final DetachedCriteria detachedCriteria = DetachedCriteria.forClass(EscidocRole.class, "r"); detachedCriteria.add(Restrictions.ne("id", EscidocRole.DEFAULT_USER_ROLE_ID)); if (criterias != null && !criterias.isEmpty()) { // ids final Set<String> roleIds = mergeSets((Set<String>) criterias.remove(Constants.DC_IDENTIFIER_URI), (Set<String>) criterias.remove(Constants.FILTER_PATH_ID)); if (roleIds != null && !roleIds.isEmpty()) { detachedCriteria.add(Restrictions.in("id", roleIds.toArray())); } // limited final String limited = (String) criterias.remove("limited"); if (limited != null) { if (Boolean.parseBoolean(limited)) { detachedCriteria.add(Restrictions.isNotEmpty("scopeDefs")); } else { detachedCriteria.add(Restrictions.isEmpty("scopeDefs")); } } // granted final String granted = (String) criterias.remove("granted"); if (granted != null) { final DetachedCriteria subQuery = DetachedCriteria.forClass(RoleGrant.class, "rg"); subQuery.setProjection(Projections.rowCount()); subQuery.add(Restrictions.eqProperty("escidocRole.id", "r.id")); if (Boolean.parseBoolean(granted)) { detachedCriteria.add(Subqueries.lt(0, subQuery)); } else { detachedCriteria.add(Subqueries.eq(0, subQuery)); } } for (final Entry<String, Object[]> stringEntry : criteriaMap.entrySet()) { final Object criteriaValue = criterias.remove(stringEntry.getKey()); if (criteriaValue != null) { final Object[] parts = stringEntry.getValue(); if (parts[0].equals(COMPARE_EQ)) { detachedCriteria.add(Restrictions.eq((String) parts[1], criteriaValue)); } else { detachedCriteria.add(Restrictions.like((String) parts[1], criteriaValue)); } } } } if (orderBy != null) { if (sorting == ListSorting.ASCENDING) { detachedCriteria.addOrder(Order.asc(propertiesNamesMap.get(orderBy))); } else if (sorting == ListSorting.DESCENDING) { detachedCriteria.addOrder(Order.desc(propertiesNamesMap.get(orderBy))); } } if (criterias != null && criterias.isEmpty()) { final List<EscidocRole> result; try { result = getHibernateTemplate().findByCriteria(detachedCriteria, offset, maxResults); } catch (final DataAccessException e) { throw new SqlDatabaseSystemException(e); } return result; } else { // unsupported filter criteria has been found, therefore the result // list must be empty. return new ArrayList<EscidocRole>(0); } }
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 w w. j a va 2 s .co m * @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: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 . j av a2s. com*/ 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(); }
From source file:es.sm2.openppm.core.dao.EmployeeDAO.java
License:Open Source License
/** * Find Approvals Time Sheets by Functional Manager * /* w ww .j av a2 s .c o m*/ * @param user * @param initDate * @param endDate * @param status * @param statusResource * @param includeClosed * @param onlyOperations * @param employees - not equals * @return */ @SuppressWarnings("unchecked") public List<Employee> findApprovals(Employee user, Date initDate, Date endDate, String status, String statusResource, boolean includeClosed, List<Employee> employees, boolean onlyOperations) { Resourceprofiles profile = user.getResourceprofiles(); Criteria crit = getSession().createCriteria(getPersistentClass(), "e") .setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY).setFetchMode(Employee.CONTACT, FetchMode.JOIN); if (ValidateUtil.isNotNull(employees)) { List<Integer> ids = new ArrayList<Integer>(); for (Employee item : employees) { ids.add(item.getIdEmployee()); } crit.add(Restrictions.not(Restrictions.in("e." + Employee.IDEMPLOYEE, ids))); } crit.createCriteria(Employee.TIMESHEETS, "ts").add(Restrictions.eq(Timesheet.INITDATE, initDate)) .add(Restrictions.eq(Timesheet.ENDDATE, endDate)).add(Restrictions.eq(Timesheet.STATUS, status)) .createAlias(Timesheet.PROJECTACTIVITY, "pa", Criteria.LEFT_JOIN) .createAlias("pa." + Projectactivity.PROJECT, "p", Criteria.LEFT_JOIN); if (ValidateUtil.isNotNull(statusResource)) { crit.createCriteria("pa." + Projectactivity.TEAMMEMBERS) .add(Restrictions.eq(Teammember.STATUS, statusResource)).createCriteria(Teammember.EMPLOYEE) .add(Restrictions.eqProperty(Employee.IDEMPLOYEE, "e." + Employee.IDEMPLOYEE)); } else if (onlyOperations) { crit.add(Restrictions.isNotNull("ts." + Timesheet.OPERATION)); } // Exluce projects closed if (!includeClosed) { crit.add(Restrictions.and(Restrictions.ne("p." + Project.STATUS, Constants.STATUS_CLOSED), Restrictions.ne("p." + Project.STATUS, Constants.STATUS_ARCHIVED))); } // Filter by User. Settings by company for last approval. if (profile.getIdProfile() == Constants.ROLE_FM) { crit.add(Restrictions.or(Restrictions.eq("p." + Project.EMPLOYEEBYFUNCTIONALMANAGER, user), Restrictions.and(Restrictions.isNull("ts." + Timesheet.PROJECTACTIVITY), Restrictions.eq("e." + Employee.PERFORMINGORG, user.getPerformingorg())))); } else if (profile.getIdProfile() == Constants.ROLE_PMO) { crit.add(Restrictions.or(Restrictions.eq("p." + Project.PERFORMINGORG, user.getPerformingorg()), Restrictions.and(Restrictions.isNull("ts." + Timesheet.PROJECTACTIVITY), Restrictions.eq("e." + Employee.PERFORMINGORG, user.getPerformingorg())))); } return crit.list(); }
From source file:fr.gael.dhus.olingo.v1.SQLVisitor.java
License:Open Source License
private Criterion getCriterionComparative(BinaryOperator operator, Object left, Object right) { Criterion criterion = null;// w w w . j av a 2 s . c o m if (left instanceof Member) { if (right instanceof Member) { // property <operator> property String lvalue = ((Member) left).getName(); String rvalue = ((Member) right).getName(); switch (operator) { case EQ: { criterion = Restrictions.eqProperty(lvalue, rvalue); break; } case NE: { criterion = Restrictions.neProperty(lvalue, rvalue); break; } case GT: { criterion = Restrictions.gtProperty(lvalue, rvalue); break; } case GE: { criterion = Restrictions.geProperty(lvalue, rvalue); break; } case LT: { criterion = Restrictions.ltProperty(lvalue, rvalue); break; } case LE: { criterion = Restrictions.leProperty(lvalue, rvalue); break; } default: throw new UnsupportedOperationException("Unsupported operation: " + operator.toUriLiteral()); } } else { // property <operator> literal String property = ((Member) left).getName(); criterion = internalCriterionComparative(operator, property, right); } } else if (right instanceof Member) { // literal <operator> property String property = ((Member) right).getName(); criterion = internalCriterionComparative(operator, property, left); } else if (left instanceof Comparable) { // literal <operator> literal Comparable comparable = (Comparable) left; boolean bool; int result = comparable.compareTo(right); switch (operator) { case EQ: { bool = result == 0; break; } case NE: { bool = result != 0; break; } case GT: { bool = result > 0; break; } case GE: { bool = result >= 0; break; } case LT: { bool = result < 0; break; } case LE: { bool = result <= 0; break; } default: throw new UnsupportedOperationException("Unsupported operation: " + operator.toUriLiteral()); } if (bool) { criterion = Restrictions.sqlRestriction("0=0"); } else { criterion = Restrictions.sqlRestriction("0<>0"); } } return criterion; }
From source file:gov.nih.nci.cananolab.service.sample.helper.AdvancedSampleServiceHelper.java
License:BSD License
private DetachedCriteria getDatumSubquery(CharacterizationQueryBean charQuery, String projectionProperty) { DetachedCriteria subCrit = DetachedCriteria.forClass(Datum.class, "subCrit"); subCrit.setProjection(Projections.distinct(Property.forName(projectionProperty))); Criterion datumCrit = getDatumCriterion(charQuery); subCrit.add(datumCrit);//www . j av a 2s .co m subCrit.add(Restrictions.eqProperty("subCrit." + projectionProperty, "rootCrit.id")); return subCrit; }
From source file:gov.nih.nci.cananolab.service.sample.helper.AdvancedSampleServiceHelper.java
License:BSD License
private DetachedCriteria getCharacterizationSubquery(CharacterizationQueryBean charQuery, String projectionProperty) { DetachedCriteria subCrit = DetachedCriteria.forClass(Characterization.class, "subCrit"); subCrit.setProjection(Projections.distinct(Property.forName(projectionProperty))); // join finding and datum if (!StringUtils.isEmpty(charQuery.getDatumName())) { subCrit.createAlias("subCrit.findingCollection", "finding", CriteriaSpecification.LEFT_JOIN); subCrit.createAlias("finding.datumCollection", "datum", CriteriaSpecification.LEFT_JOIN); }//from www. j a va2 s . com Criterion charCrit = getCharacterizationCriterion(charQuery, ""); subCrit.add(charCrit); subCrit.add(Restrictions.eqProperty("subCrit." + projectionProperty, "rootCrit.id")); return subCrit; }
From source file:gov.nih.nci.cananolab.service.sample.helper.AdvancedSampleServiceHelper.java
License:BSD License
private DetachedCriteria getFunctionalizingEntitySubquery(CompositionQueryBean query, String funcEntityAlias, String projectionProperty) throws Exception { DetachedCriteria subCrit = DetachedCriteria.forClass(FunctionalizingEntity.class, "subCrit"); subCrit.setProjection(Projections.distinct(Property.forName(projectionProperty))); Criterion funcCrit = getFunctionalizingEntityCriterion(query, ""); subCrit.add(funcCrit);//from ww w . j av a 2 s .co m subCrit.add(Restrictions.eqProperty("subCrit." + projectionProperty, funcEntityAlias + "id")); return subCrit; }
From source file:gov.nih.nci.cananolab.service.sample.helper.AdvancedSampleServiceHelper.java
License:BSD License
private DetachedCriteria getFunctionSubquery(CompositionQueryBean query, String funcAlias1, String funcAlias2, String projectionProperty) throws Exception { DetachedCriteria subCrit = DetachedCriteria.forClass(Function.class, "subCrit"); subCrit.setProjection(Projections.distinct(Property.forName(projectionProperty))); Criterion funcCrit = getFunctionCriterion(query, "", ""); subCrit.add(funcCrit);/* w w w. ja v a2 s . com*/ if (funcAlias1.equals(funcAlias2)) { subCrit.add(Restrictions.eqProperty("subCrit." + projectionProperty, funcAlias1 + "id")); } else { subCrit.add(Restrictions.or(Restrictions.eqProperty("subCrit." + projectionProperty, funcAlias1 + "id"), Restrictions.eqProperty("subCrit." + projectionProperty, funcAlias2 + "id"))); } return subCrit; }