Example usage for org.hibernate.criterion Restrictions conjunction

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

Introduction

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

Prototype

public static Conjunction conjunction() 

Source Link

Document

Group expressions together in a single conjunction (A and B and C...).

Usage

From source file:org.egov.infra.persistence.validator.CompositeUniqueCheckValidator.java

License:Open Source License

private boolean checkCompositeUniqueKey(final Object arg0, final Number id) throws IllegalAccessException {
    final Criteria criteria = entityManager.unwrap(Session.class)
            .createCriteria(unique.isSuperclass() ? arg0.getClass().getSuperclass() : arg0.getClass())
            .setReadOnly(true);//from  w  w  w. j  a v a2 s . c o  m
    final Conjunction conjunction = Restrictions.conjunction();
    for (final String fieldName : unique.fields()) {
        final Object fieldValue = FieldUtils.readField(arg0, fieldName, true);
        if (unique.checkForNull() && fieldValue == null)
            conjunction.add(Restrictions.isNull(fieldName));
        else if (fieldValue instanceof String)
            conjunction.add(Restrictions.eq(fieldName, fieldValue).ignoreCase());
        else
            conjunction.add(Restrictions.eq(fieldName, fieldValue));
    }
    if (id != null)
        conjunction.add(Restrictions.ne(unique.id(), id));
    return criteria.add(conjunction).setProjection(Projections.id()).setMaxResults(1).uniqueResult() == null;
}

From source file:org.egov.infra.persistence.validator.UniqueDateOverlapValidator.java

License:Open Source License

private boolean checkUnique(Object object) throws IllegalAccessException {
    Number id = (Number) FieldUtils.readField(object, uniqueDateOverlap.id(), true);
    Criteria uniqueDateOverlapChecker = entityManager.unwrap(Session.class).createCriteria(object.getClass())
            .setReadOnly(true);//  w w w. j  a  v  a 2 s  . com
    Conjunction uniqueCheck = Restrictions.conjunction();
    for (String fieldName : uniqueDateOverlap.uniqueFields()) {
        Object fieldValue = FieldUtils.readField(object, fieldName, true);
        if (fieldValue instanceof String)
            uniqueCheck.add(Restrictions.eq(fieldName, fieldValue).ignoreCase());
        else
            uniqueCheck.add(Restrictions.eq(fieldName, fieldValue));
    }
    Date fromDate = startOfDay((Date) FieldUtils.readField(object, uniqueDateOverlap.fromField(), true));
    Date toDate = endOfDay((Date) FieldUtils.readField(object, uniqueDateOverlap.toField(), true));
    Conjunction checkFromDate = Restrictions.conjunction();
    checkFromDate.add(Restrictions.le(uniqueDateOverlap.fromField(), fromDate));
    checkFromDate.add(Restrictions.ge(uniqueDateOverlap.toField(), fromDate));
    Conjunction checkToDate = Restrictions.conjunction();
    checkToDate.add(Restrictions.le(uniqueDateOverlap.fromField(), toDate));
    checkToDate.add(Restrictions.ge(uniqueDateOverlap.toField(), toDate));
    Conjunction checkFromAndToDate = Restrictions.conjunction();
    checkFromAndToDate.add(Restrictions.ge(uniqueDateOverlap.fromField(), fromDate));
    checkFromAndToDate.add(Restrictions.le(uniqueDateOverlap.toField(), toDate));
    Disjunction dateRangeChecker = Restrictions.disjunction();
    dateRangeChecker.add(checkFromDate).add(checkToDate).add(checkFromAndToDate);
    uniqueCheck.add(dateRangeChecker);
    if (id != null)
        uniqueCheck.add(Restrictions.ne(uniqueDateOverlap.id(), id));
    return uniqueDateOverlapChecker.add(uniqueCheck).setProjection(Projections.id()).setMaxResults(1)
            .uniqueResult() == null;
}

From source file:org.egov.infra.workflow.service.SimpleWorkflowService.java

License:Open Source License

@Override
public WorkFlowMatrix getWfMatrix(String type, String department, BigDecimal amountRule, String additionalRule,
        String currentState, String pendingActions, Date date) {
    Criteria wfMatrixCriteria = createWfMatrixAdditionalCriteria(type, department, amountRule, additionalRule,
            currentState, pendingActions, null);
    Criterion fromDateCriteria = Restrictions.le("fromDate", date == null ? new Date() : date);
    Criterion toDateCriteria = Restrictions.ge("toDate", date == null ? new Date() : date);
    Criterion dateCriteria = Restrictions.conjunction().add(fromDateCriteria).add(toDateCriteria);
    wfMatrixCriteria.add(Restrictions.or(dateCriteria, fromDateCriteria));
    return getWorkflowMatrixObj(type, additionalRule, currentState, pendingActions, null, wfMatrixCriteria);
}

From source file:org.egov.infra.workflow.service.SimpleWorkflowService.java

License:Open Source License

@Override
public WorkFlowMatrix getWfMatrix(String type, String department, BigDecimal amountRule, String additionalRule,
        String currentState, String pendingActions, Date date, String designation) {
    Criteria wfMatrixCriteria = createWfMatrixAdditionalCriteria(type, department, amountRule, additionalRule,
            currentState, pendingActions, designation);
    Criterion fromDateCriteria = Restrictions.le("fromDate", date == null ? new Date() : date);
    Criterion toDateCriteria = Restrictions.ge("toDate", date == null ? new Date() : date);
    Criterion dateCriteria = Restrictions.conjunction().add(fromDateCriteria).add(toDateCriteria);
    Criterion criteriaDesignation = Restrictions.ilike(CURRENT_DESIGNATION,
            isNotBlank(designation) ? designation : EMPTY);
    wfMatrixCriteria.add(criteriaDesignation);
    wfMatrixCriteria.add(Restrictions.or(dateCriteria, fromDateCriteria));
    return getWorkflowMatrixObj(type, additionalRule, currentState, pendingActions, designation,
            wfMatrixCriteria);//from  ww w  .  j  a va  2 s  .c o  m
}

From source file:org.egov.infra.workflow.service.SimpleWorkflowService.java

License:Open Source License

private Criteria createWfMatrixAdditionalCriteria(String type, String department, BigDecimal amountRule,
        String additionalRule, String currentState, String pendingActions, String designation) {
    Criteria wfMatrixCriteria = commonWorkFlowMatrixCriteria(type, additionalRule, currentState,
            pendingActions);//w  ww  .j  a  v  a 2s.  co  m
    if (isNotBlank(department))
        wfMatrixCriteria.add(Restrictions.eq(DEPARTMENT, department));

    // Added restriction for amount rule
    if (amountRule != null && BigDecimal.ZERO.compareTo(amountRule) != 0) {
        Criterion amount1st = Restrictions.conjunction().add(Restrictions.le(FROM_QTY, amountRule))
                .add(Restrictions.ge(TO_QTY, amountRule));

        Criterion amount2nd = Restrictions.conjunction().add(Restrictions.le(FROM_QTY, amountRule))
                .add(Restrictions.isNull(TO_QTY));
        wfMatrixCriteria.add(Restrictions.disjunction().add(amount1st).add(amount2nd));

    }

    if (isNotBlank(designation))
        wfMatrixCriteria.add(Restrictions.ilike(CURRENT_DESIGNATION, designation));

    return wfMatrixCriteria;
}

From source file:org.egov.infra.workflow.service.SimpleWorkflowService.java

License:Open Source License

public WorkFlowMatrix getPreviousStateFromWfMatrix(String type, String department, BigDecimal amountRule,
        String additionalRule, String currentState, String pendingActions) {

    Criteria wfMatrixCriteria = previousWorkFlowMatrixCriteria(type, additionalRule, currentState,
            pendingActions);/* w w w. jav a 2s. com*/
    if (department != null && !"".equals(department))
        wfMatrixCriteria.add(Restrictions.eq(DEPARTMENT, department));
    else
        wfMatrixCriteria.add(Restrictions.eq(DEPARTMENT, ANY));

    // Added restriction for amount rule
    if (amountRule != null && BigDecimal.ZERO.compareTo(amountRule) != 0) {
        Criterion amount1st = Restrictions.conjunction().add(Restrictions.le(FROM_QTY, amountRule))
                .add(Restrictions.ge(TO_QTY, amountRule));
        Criterion amount2nd = Restrictions.conjunction().add(Restrictions.le(FROM_QTY, amountRule))
                .add(Restrictions.isNull(TO_QTY));
        wfMatrixCriteria.add(Restrictions.disjunction().add(amount1st).add(amount2nd));

    }

    List<WorkFlowMatrix> workflowMatrix = wfMatrixCriteria.list();

    return workflowMatrix.isEmpty() ? null : workflowMatrix.get(0);

}

From source file:org.egov.ptis.actions.common.AjaxCommonAction.java

License:Open Source License

@Action(value = "/ajaxCommon-categoryByRateUsageAndStructClass")
public String categoryByRateUsageAndStructClass() {
    if (logger.isDebugEnabled())
        logger.debug("Entered into categoryByRateUsageAndStructClass method, Usage Factor: " + usageFactor
                + ", Structure Classification: " + structFactor);

    final PropertyUsage propUsage = (PropertyUsage) getPersistenceService()
            .find("from PropertyUsage pu where pu.usageName=?", usageFactor);
    final StructureClassification structureClass = (StructureClassification) getPersistenceService()
            .find("from StructureClassification sc where sc.typeName=?", structFactor);

    if (propUsage != null && structureClass != null && revisedRate != null) {
        Criterion usgId;/*w  w  w.j  a  v a 2 s. c  o m*/
        Criterion classId;
        Criterion catAmt;
        final Conjunction conjunction = Restrictions.conjunction();
        usgId = Restrictions.eq("propUsage", propUsage);
        classId = Restrictions.eq("structureClass", structureClass);
        catAmt = Restrictions.eq("categoryAmount", revisedRate);
        conjunction.add(usgId);
        conjunction.add(classId);
        conjunction.add(catAmt);

        final Criterion criterion = conjunction;
        categoryList = categoryDAO.getCategoryByRateUsageAndStructClass(criterion);

    }

    addDropdownData("categoryList", categoryList);
    if (logger.isDebugEnabled())
        logger.debug("Exiting from categoryByRateUsageAndStructClass method");
    if (categoryList == null) {
        if (logger.isDebugEnabled())
            logger.debug(
                    "categoryByRateUsageAndStructClass: categoryList is NULL \n Exiting from categoryByRateUsageAndStructClass");
        return FAILURE;
    } else {
        if (logger.isDebugEnabled())
            logger.debug("categoryByRateUsageAndStructClass: categoryList:" + categoryList
                    + "\nExiting from categoryByRateUsageAndStructClass");
        return CATEGORY;
    }
}

From source file:org.egov.ptis.actions.reports.BoundaryWisePropUsgeDelegate.java

License:Open Source License

public List getTotPropUsage(Integer bndryNo) {
    LOGGER.debug("Entered into getTotPropUsage method");
    LOGGER.debug("Boundary Number : " + bndryNo);
    List wardList = null;/*w  w  w  .j a  v  a2 s .co m*/
    Criterion criterion = null;
    Criterion vacantCrit = null;
    Conjunction conjun = Restrictions.conjunction();
    Projection projection = Projections.projectionList().add(Projections.property("propTypeMstrID.id"))
            .add(Projections.count("basicPropertyID")).add(Projections.sum("aggrArrDmd"))
            .add(Projections.sum("aggrCurrDmd")).add(Projections.groupProperty("propTypeMstrID"));
    if (bndryNo != null) {
        criterion = Restrictions.like("zone.id", bndryNo);
        conjun.add(criterion);
    }
    /*
     * Integer vacTypeId = getPropertyIdbyCode("OPEN_PLOT"); vacantCrit =
     * Restrictions.ne("propTypeMstrID", vacTypeId); conjun.add(vacantCrit);
     */
    wardList = propertyDAO.getPropMaterlizeViewList(projection, conjun, null);
    LOGGER.debug("Ward list : " + (wardList != null ? wardList : ZERO));
    LOGGER.debug("Exit from getTotPropUsage method");
    return wardList;
}

From source file:org.egov.ptis.actions.reports.BoundaryWisePropUsgeDelegate.java

License:Open Source License

public List getWardList(Integer zoneNo) {
    LOGGER.debug("Entered into getWardList method");
    LOGGER.debug("Zone Number : " + zoneNo);
    List wardList = null;//from   w ww . j  a v a 2  s  .c o m
    Conjunction conjun = Restrictions.conjunction();
    if (zoneNo > 0) {
        Criterion criterion = Restrictions.like("zone.id", zoneNo);
        conjun.add(criterion);
        Integer vacTypeId = getPropertyIdbyCode("OPEN_PLOT");
        // Criterion anothercriterion = Restrictions.ne("propTypeMstrID",
        // vacTypeId);
        // conjun.add(anothercriterion);

        Projection projection = Projections.projectionList().add(Projections.property("ward.id"))
                .add(Projections.property("propTypeMstrID.id")).add(Projections.sum("aggrArrDmd"))
                .add(Projections.sum("aggrCurrDmd")).add(Projections.count("basicPropertyID"))
                .add(Projections.groupProperty("ward.id")).add(Projections.groupProperty("propTypeMstrID"));
        Order order = Order.asc("ward.id");
        wardList = propertyDAO.getPropMaterlizeViewList(projection, conjun, order);
    }
    LOGGER.debug("Ward list : " + (wardList != null ? wardList : ZERO));
    LOGGER.debug("Exit from getWardList method");
    return wardList;
}

From source file:org.eurocarbdb.resourcesdb.io.HibernateAccess.java

License:Open Source License

public static ArrayList<Monosaccharide> getMonosaccharideListByFuzzyMonosaccharide(Monosaccharide mono,
        boolean matchCoremodCount, boolean matchSubstCount) {
    Session session = HibernateUtil.getSessionFactory().getCurrentSession();
    session.beginTransaction();/*from   w  w w  .  j  av  a  2  s  .  c o m*/

    //*** prepare Criteria object: ***
    Criteria query = session.createCriteria(Monosaccharide.class);
    query.createAlias("basetype", "bt");
    if (mono.countCoreModifications() > 0) {
        query.createAlias("bt.coreModifications", "mod");
    }
    if (mono.countSubstitutions() > 0) {
        query.createAlias("substitutions", "subst", Criteria.LEFT_JOIN);
    }

    //*** add restrictions: ***

    Conjunction monoJunc = Restrictions.conjunction();
    query.add(monoJunc);

    //*** size restriction: ***
    if (mono.getSize() > 0) {
        monoJunc.add(Restrictions.eq("bt.size", mono.getSize()));
    }

    //*** stereocode restrictions: ***
    if (mono.getStereoStr() != null && mono.getStereoStr().length() > 0) {
        String stereo1 = null;
        String stereo2 = null;
        if (mono.getStereocode().hasRelativePosition()) {
            try {
                stereo1 = Stereocode.relativeToAbsolute(mono.getStereoStr());
                stereo2 = Stereocode
                        .relativeToAbsolute(Stereocode.changeRelativeDLinStereoString(mono.getStereoStr()));
                stereo2 = stereo2.replaceAll("" + Stereocode.StereoX, "_");
            } catch (ResourcesDbException me) {
                //*** stereocode causes problems, doesn't make sense to use it for search then, therefore nothing needs to be done here ***
                if (Config.getGlobalConfig().isPrintErrorMsgs()) {
                    System.err.println(me);
                    me.printStackTrace();
                }
            }
        } else {
            stereo1 = mono.getStereoStr();
        }
        if (stereo1 != null) {
            stereo1 = stereo1.replaceAll("" + Stereocode.StereoX, "_");
            if (stereo2 != null) {
                monoJunc.add(Restrictions.disjunction().add(Restrictions.like("bt.stereoStr", stereo1))
                        .add(Restrictions.like("bt.stereoStr", stereo2)));
            } else {
                monoJunc.add(Restrictions.like("bt.stereoStr", stereo1));
            }
        }
    }

    //*** anomeric restriction: ***
    if (mono.getAnomer() != null && !mono.getAnomer().equals(Anomer.UNKNOWN)) {
        monoJunc.add(Restrictions.eq("bt.anomerSymbol", mono.getAnomer().getSymbol()));
    }

    //*** ring restrictions: ***
    if (mono.getRingStart() != Basetype.UNKNOWN_RING) {
        monoJunc.add(Restrictions.eq("bt.ringStart", mono.getRingStart()));
    }
    if (mono.getRingEnd() != Basetype.UNKNOWN_RING) {
        monoJunc.add(Restrictions.eq("bt.ringEnd", mono.getRingEnd()));
    }

    //*** core modification restrictions: ***
    if (mono.countCoreModifications() > 0) {
        Conjunction modListConjunct = Restrictions.conjunction();
        for (CoreModification mod : mono.getCoreModifications()) {
            Conjunction modConjunct = Restrictions.conjunction();
            modConjunct.add(Restrictions.eq("mod.name", mod.getName()));
            if (mod.getPosition1().size() > 1) {
                Disjunction modPos1Disjunct = Restrictions.disjunction();
                for (Integer pos1 : mod.getPosition1()) {
                    if (pos1.intValue() != 0) {
                        modPos1Disjunct.add(Restrictions.eq("mod.intValuePosition1", pos1));
                    }
                }
                modConjunct.add(modPos1Disjunct);
            } else if (mod.getIntValuePosition1() > 0) {
                modConjunct.add(Restrictions.eq("mod.intValuePosition1", mod.getIntValuePosition1()));
            }
            if (mod.hasPosition2()) {
                if (mod.getPosition2().size() > 1) {
                    Disjunction modPos2Disjunct = Restrictions.disjunction();
                    for (Integer pos2 : mod.getPosition2()) {
                        if (pos2.intValue() != 0) {
                            modPos2Disjunct.add(Restrictions.eq("mod.intValuePosition2", pos2));
                        }
                    }
                    modConjunct.add(modPos2Disjunct);
                } else if (mod.getIntValuePosition2() > 0) {
                    modConjunct.add(Restrictions.eq("mod.intValuePosition2", mod.getIntValuePosition2()));
                }
            }
            modListConjunct.add(modConjunct);
        }
        monoJunc.add(modListConjunct);
    }

    //*** substitution restrictions: ***
    if (mono.countSubstitutions() > 0) {
        Conjunction substListConjunct = Restrictions.conjunction();
        for (Substitution subst : mono.getSubstitutions()) {
            Conjunction substConjunct = Restrictions.conjunction();
            substConjunct.add(Restrictions.eq("subst.name", subst.getName()));
            if (subst.getPosition1().size() > 1) {
                Disjunction substPos1Disjunct = Restrictions.disjunction();
                for (Integer pos1 : subst.getPosition1()) {
                    if (pos1.intValue() != 0) {
                        substPos1Disjunct.add(Restrictions.eq("subst.intValuePosition1", pos1));
                    }
                }
                substConjunct.add(substPos1Disjunct);
            } else if (subst.getIntValuePosition1() > 0) {
                substConjunct.add(Restrictions.eq("subst.intValuePosition1", subst.getIntValuePosition1()));
            }
            if (subst.getLinkagetype1() != null) {
                substConjunct.add(Restrictions.eq("subst.linkagetypeStr1", subst.getLinkagetypeStr1()));
            }
            if (subst.hasPosition2()) {
                if (subst.getPosition2().size() > 1) {
                    Disjunction substPos2Disjunct = Restrictions.disjunction();
                    for (Integer pos2 : subst.getPosition2()) {
                        if (pos2.intValue() != 0) {
                            substPos2Disjunct.add(Restrictions.eq("subst.intValuePosition2", pos2));
                        }
                    }
                    substConjunct.add(substPos2Disjunct);
                } else if (subst.getIntValuePosition2() > 0) {
                    substConjunct.add(Restrictions.eq("subst.intValuePosition2", subst.getIntValuePosition2()));
                }
                if (subst.getLinkagetype2() != null) {
                    substConjunct.add(Restrictions.eq("subst.linkagetypeStr2", subst.getLinkagetypeStr2()));
                }
            }
            substListConjunct.add(substConjunct);
        }
        monoJunc.add(substListConjunct);
    }

    //*** add "distinct": ***
    query.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);

    //System.out.println("query: " + query.toString());

    //*** perform query: ***
    List<?> queryList = query.list();

    //*** prepare result List: ***
    ArrayList<Monosaccharide> resultList = new ArrayList<Monosaccharide>();
    Iterator<?> listIter = queryList.iterator();
    while (listIter.hasNext()) {
        Monosaccharide resultMs = (Monosaccharide) listIter.next();
        if (resultMs != null) {
            //TODO: include modification counts into criteria
            if (!matchCoremodCount || resultMs.countCoreModifications() == mono.countCoreModifications()) {
                if (!matchSubstCount || resultMs.countSubstitutions() == mono.countSubstitutions()) {
                    resultList.add(resultMs);
                }
            }
        }
    }
    return resultList;
}