List of usage examples for org.hibernate.criterion Restrictions conjunction
public static Conjunction conjunction()
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; }