Example usage for org.hibernate.criterion Restrictions eqProperty

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

Introduction

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

Prototype

public static PropertyExpression eqProperty(String propertyName, String otherPropertyName) 

Source Link

Document

Apply an "equal" constraint to two properties

Usage

From source file:gov.nih.nci.cananolab.service.sample.helper.AdvancedSampleServiceHelper.java

License:BSD License

private DetachedCriteria getNanomaterialEntitySubquery(CompositionQueryBean query, String nanoEntityAlias,
        String projectionProperty) throws Exception {
    DetachedCriteria subCrit = DetachedCriteria.forClass(NanomaterialEntity.class, "subCrit");
    subCrit.setProjection(Projections.distinct(Property.forName(projectionProperty)));
    // join composing element
    if (!StringUtils.isEmpty(query.getChemicalName())) {
        subCrit.createAlias("subCrit.composingElementCollection", "compElement",
                CriteriaSpecification.LEFT_JOIN);
    }//from w ww .j a  v a  2 s  .  c o m
    Criterion nanoCrit = getNanomaterialEntityCriterion(query, "");
    subCrit.add(nanoCrit);
    subCrit.add(Restrictions.eqProperty("subCrit." + projectionProperty, nanoEntityAlias + "id"));
    return subCrit;
}

From source file:gov.nih.nci.cananolab.service.sample.helper.AdvancedSampleServiceHelper.java

License:BSD License

private DetachedCriteria getPointOfContactSubquery(SampleQueryBean query, String pocAlias1, String pocAlias2,
        String projectionProperty) {
    DetachedCriteria subCrit = DetachedCriteria.forClass(PointOfContact.class, "subCrit");
    subCrit.createAlias("subCrit.organization", "organization", CriteriaSpecification.LEFT_JOIN);
    subCrit.setProjection(Projections.distinct(Property.forName("id")));
    Disjunction pocDisjunction = getPointOfContactDisjunctionPerQuery(query, "", "");
    subCrit.add(pocDisjunction);/*from   w ww  .  j  av  a2 s.  co  m*/
    if (pocAlias1.equals(pocAlias2)) {
        subCrit.add(Restrictions.eqProperty("subCrit." + projectionProperty, pocAlias1 + "id"));
    } else {
        subCrit.add(Restrictions.or(Restrictions.eqProperty("subCrit." + projectionProperty, pocAlias1 + "id"),
                Restrictions.eqProperty("subCrit." + projectionProperty, pocAlias2 + "id")));
    }
    return subCrit;
}

From source file:gov.nih.nci.security.dao.AuthorizationDAOImpl.java

License:Open Source License

public List getObjects(SearchCriteria searchCriteria) {
    Session s = null;//from   www  .ja va  2 s  .co  m
    List result = new ArrayList();
    try {

        s = HibernateSessionFactoryHelper.getAuditSession(sf);
        Criteria criteria = s.createCriteria(searchCriteria.getObjectType());
        Hashtable fieldValues = searchCriteria.getFieldAndValues();
        Enumeration en = fieldValues.keys();
        while (en.hasMoreElements()) {
            String str = (String) en.nextElement();
            String fieldValue = (String) fieldValues.get(str);
            String fieldValue_ = StringUtilities.replaceInString(fieldValue.trim(), "*", "%");
            //int i = ((String) fieldValues.get(str)).indexOf("%");
            int i = fieldValue_.indexOf("%");
            if (i != -1) {
                //criteria.add(Restrictions.like(str, fieldValues.get(str)));
                criteria.add(Restrictions.like(str, fieldValue_));
            } else {
                //criteria.add(Restrictions.eq(str, fieldValues.get(str)));
                criteria.add(Restrictions.eq(str, fieldValue_));
            }
        }
        if (fieldValues.size() == 0) {
            criteria.add(Restrictions.eqProperty("1", "1"));
        }
        log.debug("Message from debug: ObjectType=" + searchCriteria.getObjectType().getName());

        //boolean t =
        // searchCriteria.getObjectType().getName().equalsIgnoreCase("gov.nih.nci.security.authorization.domainobjects.User")||searchCriteria.getObjectType().getName().equalsIgnoreCase("gov.nih.nci.security.authorization.domainobjects.Privilege");

        //log.debug("Test:"+t);

        //if(!t){
        //   criteria.add(Restrictions.eq("application", this.application));
        //}

        if (!(searchCriteria.getObjectType().getName()
                .equalsIgnoreCase("gov.nih.nci.security.authorization.domainobjects.User")
                || searchCriteria.getObjectType().getName()
                        .equalsIgnoreCase("gov.nih.nci.security.authorization.domainobjects.Privilege")
                || searchCriteria.getObjectType().getName()
                        .equalsIgnoreCase("gov.nih.nci.security.authorization.domainobjects.Application"))) {
            criteria.add(Restrictions.eq("application", this.application));
        }

        List list = new ArrayList();
        list = criteria.list();
        Collections.sort(list);
        result.clear();
        result.addAll(list);

    } catch (Exception ex) {
        ex.printStackTrace();
        if (log.isDebugEnabled())
            log.debug("Authorization|||getObjects|Failure|Error in Obtaining Search Objects from Database |"
                    + ex.getMessage());
    } finally {
        try {
            s.close();
        } catch (Exception ex2) {
            if (log.isDebugEnabled())
                log.debug("Authorization|||getObjects|Failure|Error in Closing Session |" + ex2.getMessage());
        }
    }
    if (log.isDebugEnabled())
        log.debug("Authorization|||getObjects|Success|Successful in Searching objects from the database |");
    return result;
}

From source file:gov.nih.nci.security.dao.AuthorizationDAOImpl.java

License:Open Source License

private List getObjects(Session s, SearchCriteria searchCriteria) {
    List result = new ArrayList();
    try {//from   w w  w . j a  v a2s  . c  o m

        Criteria criteria = s.createCriteria(searchCriteria.getObjectType());
        Hashtable fieldValues = searchCriteria.getFieldAndValues();
        Enumeration en = fieldValues.keys();
        while (en.hasMoreElements()) {
            String str = (String) en.nextElement();
            String fieldValue = (String) fieldValues.get(str);
            String fieldValue_ = StringUtilities.replaceInString(fieldValue, "*", "%");
            //int i = ((String) fieldValues.get(str)).indexOf("%");
            int i = fieldValue_.indexOf("%");
            if (i != -1) {
                //criteria.add(Restrictions.like(str, fieldValues.get(str)));
                criteria.add(Restrictions.like(str, fieldValue_));
            } else {
                //criteria.add(Restrictions.eq(str, fieldValues.get(str)));
                criteria.add(Restrictions.eq(str, fieldValue_));
            }
        }
        if (fieldValues.size() == 0) {
            criteria.add(Restrictions.eqProperty("1", "1"));
        }
        log.debug("Message from debug: ObjectType=" + searchCriteria.getObjectType().getName());

        //boolean t =
        // searchCriteria.getObjectType().getName().equalsIgnoreCase("gov.nih.nci.security.authorization.domainobjects.User")||searchCriteria.getObjectType().getName().equalsIgnoreCase("gov.nih.nci.security.authorization.domainobjects.Privilege");

        //log.debug("Test:"+t);

        //if(!t){
        //   criteria.add(Restrictions.eq("application", this.application));
        //}

        if (!(searchCriteria.getObjectType().getName()
                .equalsIgnoreCase("gov.nih.nci.security.authorization.domainobjects.User")
                || searchCriteria.getObjectType().getName()
                        .equalsIgnoreCase("gov.nih.nci.security.authorization.domainobjects.Privilege")
                || searchCriteria.getObjectType().getName()
                        .equalsIgnoreCase("gov.nih.nci.security.authorization.domainobjects.Application"))) {
            criteria.add(Restrictions.eq("application", this.application));
        }

        result = criteria.list();
        Collections.sort(result);

    } catch (Exception ex) {
        ex.printStackTrace();
        if (log.isDebugEnabled())
            log.debug("Authorization|||getObjects|Failure|Error in Obtaining Search Objects from Database |"
                    + ex.getMessage());
    }
    if (log.isDebugEnabled())
        log.debug("Authorization|||getObjects|Success|Successful in Searching objects from the database |");
    return result;
}

From source file:grails.orm.HibernateCriteriaBuilder.java

License:Apache License

/**
 * Creates a Criterion that compares to class properties for equality
 * @param propertyName The first property name
 * @param otherPropertyName The second property name
 * @return A Criterion instance//w ww. ja  va2s.c  om
 */
public org.grails.datastore.mapping.query.api.Criteria eqProperty(String propertyName,
        String otherPropertyName) {
    if (!validateSimpleExpression()) {
        throwRuntimeException(new IllegalArgumentException("Call to [eqProperty] with propertyName ["
                + propertyName + "] and other property name [" + otherPropertyName + "] not allowed here."));
    }

    propertyName = calculatePropertyName(propertyName);
    otherPropertyName = calculatePropertyName(otherPropertyName);
    addToCriteria(Restrictions.eqProperty(propertyName, otherPropertyName));
    return this;
}

From source file:monasca.api.infrastructure.persistence.hibernate.AlarmSqlRepoImpl.java

License:Apache License

@Override
public void deleteById(String tenantId, String id) {
    logger.trace(ORM_LOG_MARKER, "deleteById(...) entering");

    Transaction tx = null;/*from www.  j a va  2  s  . co m*/
    Session session = null;
    try {
        session = sessionFactory.openSession();
        tx = session.beginTransaction();

        final long result = (Long) session.createCriteria(AlarmDb.class, "a")
                .createAlias("alarmDefinition", "ad")
                .add(Restrictions.conjunction(Restrictions.eq("a.id", id),
                        Restrictions.eq("ad.tenantId", tenantId),
                        Restrictions.eqProperty("a.alarmDefinition.id", "ad.id"),
                        Restrictions.isNull("ad.deletedAt")))
                .setProjection(Projections.count("a.id")).setReadOnly(true).uniqueResult();

        // This will throw an EntityNotFoundException if Alarm doesn't exist or has a different tenant
        // id
        if (result < 1) {
            throw new EntityNotFoundException("No alarm exists for %s", id);
        }

        // delete alarm
        session.getNamedQuery(AlarmDb.Queries.DELETE_BY_ID).setString("id", id).executeUpdate();

        tx.commit();
        tx = null;
    } catch (Exception e) {
        this.rollbackIfNotNull(tx);
        throw e;
    } finally {
        if (session != null) {
            session.close();
        }
    }

}

From source file:monasca.thresh.infrastructure.persistence.hibernate.AlarmDefinitionSqlImpl.java

License:Apache License

@SuppressWarnings("unchecked")
private List<SubExpression> findSubExpressions(final Session session, final String alarmDefId) {

    final List<SubExpression> subExpressions = Lists.newArrayList();
    Map<String, Map<String, String>> dimensionMap = Maps.newHashMap();

    final DetachedCriteria subAlarmDefinitionCriteria = DetachedCriteria
            .forClass(SubAlarmDefinitionDb.class, "sad").createAlias("alarmDefinition", "ad")
            .add(Restrictions.conjunction(Restrictions.eqProperty("sad.alarmDefinition.id", "ad.id"),
                    Restrictions.eq("sad.alarmDefinition.id", alarmDefId)))
            .addOrder(Order.asc("sad.id")).setProjection(Projections.property("sad.id"));

    final ScrollableResults subAlarmDefinitionDimensionResult = session
            .createCriteria(SubAlarmDefinitionDimensionDb.class).add(Property
                    .forName("subAlarmDefinitionDimensionId.subExpression.id").in(subAlarmDefinitionCriteria))
            .setReadOnly(true).scroll(ScrollMode.FORWARD_ONLY);

    final ScrollableResults subAlarmDefinitionResult = session
            .getNamedQuery(SubAlarmDefinitionDb.Queries.BY_ALARMDEFINITION_ID).setString("id", alarmDefId)
            .setReadOnly(true).scroll(ScrollMode.FORWARD_ONLY);

    while (subAlarmDefinitionDimensionResult.next()) {

        final SubAlarmDefinitionDimensionDb dim = (SubAlarmDefinitionDimensionDb) subAlarmDefinitionDimensionResult
                .get()[0];/* www.j av  a2s  .c om*/
        final SubAlarmDefinitionDimensionId id = dim.getSubAlarmDefinitionDimensionId();

        final String subAlarmId = (String) session.getIdentifier(id.getSubExpression());
        final String name = id.getDimensionName();
        final String value = dim.getValue();

        if (!dimensionMap.containsKey(subAlarmId)) {
            dimensionMap.put(subAlarmId, Maps.<String, String>newTreeMap());
        }
        dimensionMap.get(subAlarmId).put(name, value);

        session.evict(dim);
    }

    while (subAlarmDefinitionResult.next()) {
        final SubAlarmDefinitionDb def = (SubAlarmDefinitionDb) subAlarmDefinitionResult.get()[0];

        final String id = def.getId();
        final AggregateFunction function = AggregateFunction.fromJson(def.getFunction());
        final String metricName = def.getMetricName();
        final AlarmOperator operator = AlarmOperator.fromJson(def.getOperator());
        final Double threshold = def.getThreshold();
        final Integer period = def.getPeriod();
        final Integer periods = def.getPeriods();
        final Boolean deterministic = def.isDeterministic();

        Map<String, String> dimensions = dimensionMap.get(id);

        if (dimensions == null) {
            dimensions = Collections.emptyMap();
        }

        subExpressions.add(new SubExpression(id,
                new AlarmSubExpression(function, new MetricDefinition(metricName, dimensions), operator,
                        threshold, period, periods, deterministic)));

        session.evict(def);
    }

    subAlarmDefinitionDimensionResult.close();
    subAlarmDefinitionResult.close();

    return subExpressions;
}

From source file:net.firejack.platform.core.store.AbstractStore.java

License:Apache License

protected Criterion getRestrictions(SearchQuery query, Class<?> type) {
    Criterion criterion;/*from   w  w w. j a  v a2  s  . c o m*/
    Object value = query.getValue();
    QueryOperation operation = query.getOperation();
    if (value != null
            && !(QueryOperation.FIELDEQUALS.equals(operation) || QueryOperation.FIELDNOTEQUALS.equals(operation)
                    || QueryOperation.FIELDGREATERTHAN.equals(operation)
                    || QueryOperation.FIELDLESSTHAN.equals(operation))) {
        if (value instanceof Collection) {
            Collection values = (Collection) value;
            if (Integer.class.equals(type)) {
                List<Integer> list = new ArrayList<Integer>();
                for (Object item : values) {
                    list.add(Integer.parseInt(item.toString()));
                }
                value = list;
            } else if (Long.class.equals(type)) {
                List<Long> list = new ArrayList<Long>();
                for (Object item : values) {
                    list.add(Long.parseLong(item.toString()));
                }
                value = list;
            } else if (java.sql.Date.class.equals(type) || Date.class.equals(type)) {
                List<Date> list = new ArrayList<Date>();
                for (Object item : values) {
                    Tuple<Date, QueryOperation> tuple = convertToDate(item, operation);
                    operation = tuple.getValue();
                    list.add(tuple.getKey());
                }
                value = list;
            } else if (Enum.class.isAssignableFrom(type)) {
                List<Enum> enumValues = new ArrayList<Enum>(values.size());
                for (Object item : values) {
                    Enum enumItem = prepareEnumFromSearchCriteria((Class<? extends Enum>) type, item);
                    enumValues.add(enumItem);
                }
                value = enumValues;
            }
        } else {
            if (Integer.class.equals(type)) {
                value = Integer.parseInt(value.toString());
            } else if (Long.class.equals(type)) {
                value = Long.parseLong(value.toString());
            } else if (Double.class.equals(type)) {
                value = Double.parseDouble(value.toString());
            } else if (java.sql.Date.class.equals(type) || Date.class.equals(type)) {
                Tuple<Date, QueryOperation> tuple = convertToDate(value, operation);
                value = tuple.getKey();
                operation = tuple.getValue();
            } else if (Enum.class.isAssignableFrom(type)) {
                value = prepareEnumFromSearchCriteria((Class<? extends Enum>) type, value);
            }
        }
    }

    if (!String.class.equals(type)
            && (QueryOperation.LIKECS.equals(operation) || QueryOperation.LIKECSFIRST.equals(operation)
                    || QueryOperation.LIKE.equals(operation) || QueryOperation.LIKEFIRST.equals(operation))) {
        operation = QueryOperation.EQUALS;
    }

    switch (operation) {
    case LIKECS:
        criterion = Restrictions.like(query.getField(), "%" + value + "%");
        break;
    case LIKECSFIRST:
        criterion = Restrictions.like(query.getField(), value + "%");
        break;
    case LIKE:
        criterion = Restrictions.ilike(query.getField(), "%" + value + "%");
        break;
    case LIKEFIRST:
        criterion = Restrictions.ilike(query.getField(), value + "%");
        break;
    case EQUALS:
        criterion = Restrictions.eq(query.getField(), value);
        break;
    case LESSTHAN:
        criterion = Restrictions.lt(query.getField(), value);
        break;
    case GREATERTHAN:
        criterion = Restrictions.gt(query.getField(), value);
        break;
    case ISNULL:
        criterion = Restrictions.isNull(query.getField());
        break;
    case ISNOTNULL:
        criterion = Restrictions.isNotNull(query.getField());
        break;
    case ISEMPTY:
        criterion = Restrictions.isEmpty(query.getField());
        break;
    case ISNOTEMPTY:
        criterion = Restrictions.isNotEmpty(query.getField());
        break;
    case NOTEQUALS:
        criterion = Restrictions.ne(query.getField(), value);
        break;
    case IN:
        criterion = generateInRestriction(query.getField(), (Collection) value);
        break;
    case NOTIN:
        criterion = Restrictions.not(generateInRestriction(query.getField(), (Collection) value));
        break;
    case FIELDEQUALS:
        criterion = Restrictions.eqProperty(query.getField(), value != null ? value.toString() : "");
        break;
    case FIELDNOTEQUALS:
        criterion = Restrictions.neProperty(query.getField(), value != null ? value.toString() : "");
        break;
    case FIELDGREATERTHAN:
        criterion = Restrictions.gtProperty(query.getField(), value != null ? value.toString() : "");
        break;
    case FIELDLESSTHAN:
        criterion = Restrictions.ltProperty(query.getField(), value != null ? value.toString() : "");
        break;
    default:
        throw new RuntimeException("Operation " + query.getField() + " is not a valid operation");
    }
    return criterion;
}

From source file:org.balisunrise.daa.hibernate.HCriteria.java

License:Open Source License

private org.hibernate.criterion.Criterion makeCriterion(Criterion.Comparator comparator) {

    String fp = aliasMap.getPropertyName(comparator.getFirstProperty());
    String sp = aliasMap.getPropertyName(comparator.getSecondProperty());

    switch (comparator.getComparatorType()) {
    case EQUALS:/*from w w  w  .  jav a 2  s. co  m*/
        return Restrictions.eqProperty(fp, sp);
    case DIFFERENT:
        return Restrictions.neProperty(fp, sp);
    case GREATHER:
        return Restrictions.gtProperty(fp, sp);
    case GREATHER_EQUALS:
        return Restrictions.geProperty(fp, sp);
    case LESS:
        return Restrictions.ltProperty(fp, sp);
    case LESS_EQUALS:
        return Restrictions.leProperty(fp, sp);
    }
    return null;
}

From source file:org.candlepin.auth.permissions.CheckJobStatusPermission.java

License:Open Source License

@Override
@SuppressWarnings("checkstyle:indentation")
public Criterion getCriteriaRestrictions(Class entityClass) {
    if (!entityClass.equals(JobStatus.class)) {
        return null;
    }//from   w w w  .j av  a  2s. c o m

    Conjunction conjunction = Restrictions.conjunction();
    // Org has to match.
    conjunction.add(Restrictions.in("ownerId", allowedOrgKeys));

    conjunction.add(Restrictions.or(Restrictions.ne("targetType", JobStatus.TargetType.OWNER),
            Restrictions.and(Restrictions.eq("targetType", JobStatus.TargetType.OWNER),
                    Restrictions.eqProperty("ownerId", "targetId"))));

    // If the principal is not a user, make sure to enforce a principalName match.
    if (!"user".equalsIgnoreCase(principalType)) {
        conjunction.add(Restrictions.eq("principalName", principalName));
    }
    return conjunction;
}