List of usage examples for org.hibernate.criterion Restrictions conjunction
public static Conjunction conjunction()
From source file:com.evolveum.midpoint.repo.sql.QueryInterpreterTest.java
License:Apache License
@Test public void test375queryObjectypeByTypeOrgAndLocality() throws Exception { Session session = open();/*from w w w .j a v a 2 s . com*/ try { Criteria main = session.createCriteria(RObject.class, "o"); ProjectionList projections = Projections.projectionList(); addFullObjectProjectionList("o", projections, false); main.setProjection(projections); Conjunction c = Restrictions.conjunction(); main.add(c); c.add(Restrictions.eq("o." + RObject.F_OBJECT_TYPE_CLASS, RObjectType.ORG)); c.add(Restrictions.and(Restrictions.eq("o.locality.orig", "Caribbean"), Restrictions.eq("o.locality.norm", "caribbean"))); String expected = HibernateToSqlTranslator.toSql(main); EqualFilter eq = EqualFilter.createEqual(new ItemPath(OrgType.F_LOCALITY), OrgType.class, prismContext, new PolyString("Caribbean", "caribbean")); TypeFilter type = TypeFilter.createType(OrgType.COMPLEX_TYPE, eq); String real = getInterpretedQuery(session, ObjectType.class, ObjectQuery.createObjectQuery(type)); LOGGER.info("exp. query>\n{}\nreal query>\n{}", new Object[] { expected, real }); AssertJUnit.assertEquals(expected, real); checkQueryTypeAlias(real, "m_org", "locality_orig", "locality_norm"); } finally { close(session); } }
From source file:com.evolveum.midpoint.repo.sql.QueryInterpreterTest.java
License:Apache License
@Test public void test380queryObjectypeByTypeAndExtensionAttribute() throws Exception { Session session = open();/*from ww w. j a va 2 s.c o m*/ try { Criteria main = session.createCriteria(RObject.class, "o"); ProjectionList projections = Projections.projectionList(); addFullObjectProjectionList("o", projections, false); main.setProjection(projections); Conjunction c = Restrictions.conjunction(); main.add(c); c.add(Restrictions.eq("o." + RObject.F_OBJECT_TYPE_CLASS, RObjectType.USER)); Conjunction c2 = Restrictions.conjunction(); main.createCriteria("strings", "s", JoinType.LEFT_OUTER_JOIN); c2.add(Restrictions.eq("s.ownerType", RObjectExtensionType.EXTENSION)); c2.add(Restrictions.eq("s.name", new QName("http://example.com/p", "weapon"))); c2.add(Restrictions.eq("s.value", "some weapon name")); c.add(c2); String expected = HibernateToSqlTranslator.toSql(main); EqualFilter eq = EqualFilter.createEqual( new ItemPath(ObjectType.F_EXTENSION, new QName("http://example.com/p", "weapon")), UserType.class, prismContext, "some weapon name"); TypeFilter type = TypeFilter.createType(UserType.COMPLEX_TYPE, eq); String real = getInterpretedQuery(session, ObjectType.class, ObjectQuery.createObjectQuery(type)); LOGGER.info("exp. query>\n{}\nreal query>\n{}", new Object[] { expected, real }); AssertJUnit.assertEquals(expected, real); } finally { close(session); } }
From source file:com.evolveum.midpoint.repo.sql.QueryInterpreterTest.java
License:Apache License
@Test public void test390queryObjectypeByTypeAndReference() throws Exception { Session session = open();//from www .jav a 2 s .c o m try { Criteria main = session.createCriteria(RObject.class, "o"); ProjectionList projections = Projections.projectionList(); addFullObjectProjectionList("o", projections, false); main.setProjection(projections); Conjunction c = Restrictions.conjunction(); main.add(c); c.add(Restrictions.eq("o." + RObject.F_OBJECT_TYPE_CLASS, RObjectType.USER)); Criteria refs = main.createCriteria("linkRef", "l", JoinType.LEFT_OUTER_JOIN); c.add(Restrictions.and(Restrictions.eq("l.targetOid", "123"))); String expected = HibernateToSqlTranslator.toSql(main); RefFilter ref = RefFilter.createReferenceEqual(UserType.F_LINK_REF, UserType.class, prismContext, "123"); TypeFilter type = TypeFilter.createType(UserType.COMPLEX_TYPE, ref); String real = getInterpretedQuery(session, ObjectType.class, ObjectQuery.createObjectQuery(type)); LOGGER.info("exp. query>\n{}\nreal query>\n{}", new Object[] { expected, real }); AssertJUnit.assertEquals(expected, real); } finally { close(session); } }
From source file:com.evolveum.midpoint.repo.sql.QueryInterpreterTest.java
License:Apache License
@Test public void test400queryObjectypeByTypeComplex() throws Exception { Session session = open();//from ww w. jav a2 s . c o m try { Criteria main = session.createCriteria(RObject.class, "o"); ProjectionList projections = Projections.projectionList(); addFullObjectProjectionList("o", projections, false); main.setProjection(projections); Conjunction c1 = Restrictions.conjunction(); c1.add(Restrictions.eq("o." + RObject.F_OBJECT_TYPE_CLASS, RObjectType.USER)); Criterion e1 = Restrictions.and(Restrictions.eq("o.localityUser.orig", "Caribbean"), Restrictions.eq("o.localityUser.norm", "caribbean")); Criterion e2 = Restrictions.and(Restrictions.eq("o.localityUser.orig", "Adriatic"), Restrictions.eq("o.localityUser.norm", "adriatic")); c1.add(Restrictions.or(e1, e2)); Conjunction c2 = Restrictions.conjunction(); c2.add(Restrictions.eq("o." + RObject.F_OBJECT_TYPE_CLASS, RObjectType.ORG)); Criteria o1 = main.createCriteria("o.orgType", "o1", JoinType.LEFT_OUTER_JOIN); c2.add(Restrictions.eq("o1.elements", "functional")); Criterion c3 = Restrictions.eq("o." + RObject.F_OBJECT_TYPE_CLASS, RObjectType.REPORT); main.add(Restrictions.or(c1, c2, c3)); String expected = HibernateToSqlTranslator.toSql(main); EqualFilter eq1 = EqualFilter.createEqual(UserType.F_LOCALITY, UserType.class, prismContext, new PolyString("Caribbean", "caribbean")); EqualFilter eq2 = EqualFilter.createEqual(UserType.F_LOCALITY, UserType.class, prismContext, new PolyString("Adriatic", "adriatic")); TypeFilter type1 = TypeFilter.createType(UserType.COMPLEX_TYPE, OrFilter.createOr(eq1, eq2)); EqualFilter equal = EqualFilter.createEqual(OrgType.F_ORG_TYPE, OrgType.class, prismContext, "functional"); TypeFilter type2 = TypeFilter.createType(OrgType.COMPLEX_TYPE, equal); TypeFilter type3 = TypeFilter.createType(ReportType.COMPLEX_TYPE, null); OrFilter or = OrFilter.createOr(type1, type2, type3); String real = getInterpretedQuery(session, ObjectType.class, ObjectQuery.createObjectQuery(or)); LOGGER.info("exp. query>\n{}\nreal query>\n{}", new Object[] { expected, real }); AssertJUnit.assertEquals(expected, real); } finally { close(session); } }
From source file:com.heliosapm.aa4h.parser.XMLQueryParser.java
License:Apache License
/** * Element Start SAX ContentHandler Method. * @param uri/* w ww . j a va 2 s.c o m*/ * @param localName * @param qName * @see org.xml.sax.ContentHandler#startElement(java.lang.String, java.lang.String, java.lang.String, org.xml.sax.Attributes) * @throws SAXException * TODO: Document supported tags in javadoc. */ @SuppressWarnings({ "unchecked" }) public void startElement(String uri, String localNameX, String qName, Attributes attrs) throws SAXException { if ("Query".equalsIgnoreCase(qName)) { queryName = attrs.getValue("name"); rootElementName = queryName; } else if ("Class".equalsIgnoreCase(qName)) { processCriteria(attrs); } else if ("Union".equalsIgnoreCase(qName)) { inDetached = true; DetachedCriteria dc = DetachedCriteria.forEntityName(className); criteriaStack.push(dc); } else if ("NamedQuery".equalsIgnoreCase(qName)) { isNamedQuery = true; namedQuery = attrs.getValue("name"); rootElementName = namedQuery; try { query = session.getNamedQuery(namedQuery); } catch (HibernateException he) { throw new SAXException("Failed to retrieve named query[" + namedQuery + "]", he); } } else if ("qparam".equalsIgnoreCase(qName)) { processQueryBind(attrs); } else if ("Join".equalsIgnoreCase(qName)) { processCriteria(attrs); } else if ("Projections".equalsIgnoreCase(qName)) { startProjection(attrs); } else if ("Projection".equalsIgnoreCase(qName)) { addProjection(attrs); } else if ("Order".equalsIgnoreCase(qName)) { if (isRowCountOnly() == false) { try { String name = attrs.getValue("name"); String type = attrs.getValue("type"); ((Criteria) criteriaStack.peek()) .addOrder(type.equalsIgnoreCase("asc") ? Order.asc(name) : Order.desc(name)); } catch (Exception e) { throw new SAXException("Unable To Parse GreaterThan:" + attrs.getValue("name"), e); } } } else if ("GreaterThan".equalsIgnoreCase(qName)) { try { Operator operator = new Operator(attrs); addCriterion(Restrictions.gt(operator.getName(), operator.getNativeValue())); } catch (Exception e) { throw new SAXException("Unable To Parse GreaterThan:" + attrs.getValue("name"), e); } } else if ("GreaterThanOrEqual".equalsIgnoreCase(qName)) { try { Operator operator = new Operator(attrs); addCriterion(Restrictions.ge(operator.getName(), operator.getNativeValue())); } catch (Exception e) { throw new SAXException("Unable To Parse GreaterThanOrEqual:" + attrs.getValue("name"), e); } } else if ("LessThan".equalsIgnoreCase(qName)) { try { Operator operator = new Operator(attrs); addCriterion(Restrictions.lt(operator.getName(), operator.getNativeValue())); } catch (Exception e) { throw new SAXException("Unable To Parse LessThan:" + attrs.getValue("name"), e); } } else if ("LessThanOrEqual".equalsIgnoreCase(qName)) { try { Operator operator = new Operator(attrs); addCriterion(Restrictions.le(operator.getName(), operator.getNativeValue())); } catch (Exception e) { throw new SAXException("Unable To Parse LessThanOrEqual:" + attrs.getValue("name"), e); } } else if ("Equals".equalsIgnoreCase(qName)) { try { Operator operator = new Operator(attrs); if ("true".equalsIgnoreCase(attrs.getValue("not"))) { addCriterion(Restrictions.not(Restrictions.eq(operator.getName(), operator.getNativeValue()))); } else { addCriterion(Restrictions.eq(operator.getName(), operator.getNativeValue())); } } catch (Exception e) { throw new SAXException("Unable To Parse Equals:" + attrs.getValue("name"), e); } } else if ("Alias".equalsIgnoreCase(qName)) { try { Operator operator = new Operator(attrs); ((Criteria) criteriaStack.peek()).createAlias(operator.getName(), operator.getValue()); } catch (Exception e) { throw new SAXException("Unable To Create Alias:" + attrs.getValue("name"), e); } } else if ("GreaterThanProperty".equalsIgnoreCase(qName)) { try { Operator operator = new Operator(attrs); addCriterion(Restrictions.gtProperty(operator.getName(), operator.getName2())); } catch (Exception e) { throw new SAXException("Unable To Parse GreaterThanProperty:" + attrs.getValue("name"), e); } } else if ("GreaterThanOrEqualProperty".equalsIgnoreCase(qName)) { try { Operator operator = new Operator(attrs); addCriterion(Restrictions.geProperty(operator.getName(), operator.getName2())); } catch (Exception e) { throw new SAXException("Unable To Parse GreaterThanOrEqualProperty:" + attrs.getValue("name"), e); } } else if ("LessThanProperty".equalsIgnoreCase(qName)) { try { Operator operator = new Operator(attrs); addCriterion(Restrictions.ltProperty(operator.getName(), operator.getName2())); } catch (Exception e) { throw new SAXException("Unable To Parse LessThanProperty:" + attrs.getValue("name"), e); } } else if ("LessThanOrEqualProperty".equalsIgnoreCase(qName)) { try { Operator operator = new Operator(attrs); addCriterion(Restrictions.leProperty(operator.getName(), operator.getName2())); } catch (Exception e) { throw new SAXException("Unable To Parse LessThanOrEqualProperty:" + attrs.getValue("name"), e); } } else if ("EqualsProperty".equalsIgnoreCase(qName)) { try { Operator operator = new Operator(attrs); if ("true".equalsIgnoreCase(attrs.getValue("not"))) { addCriterion( Restrictions.not(Restrictions.eqProperty(operator.getName(), operator.getName2()))); } else { addCriterion(Restrictions.eqProperty(operator.getName(), operator.getName2())); } } catch (Exception e) { throw new SAXException("Unable To Parse EqualsProperty:" + attrs.getValue("name"), e); } } else if ("Like".equalsIgnoreCase(qName)) { try { Operator operator = new Operator(attrs); addCriterion(Restrictions.like(operator.getName(), operator.getNativeValue())); } catch (Exception e) { throw new SAXException("Unable To Parse Like:" + attrs.getValue("name"), e); } } else if ("Between".equalsIgnoreCase(qName)) { try { Operator operator = new Operator(attrs); addCriterion(Restrictions.between(operator.getName(), operator.getNativeValue(), operator.getNativeValue2())); } catch (Exception e) { throw new SAXException("Unable To Parse Between:" + attrs.getValue("name"), e); } } else if ("IsEmpty".equalsIgnoreCase(qName)) { try { Operator operator = new Operator(attrs); addCriterion(Restrictions.isEmpty(operator.getName())); } catch (Exception e) { throw new SAXException("Unable To Parse IsEmpty:" + attrs.getValue("name"), e); } } else if ("IsNotEmpty".equalsIgnoreCase(qName)) { try { Operator operator = new Operator(attrs); addCriterion(Restrictions.isNotEmpty(operator.getName())); } catch (Exception e) { throw new SAXException("Unable To Parse IsNotEmpty:" + attrs.getValue("name"), e); } } else if ("IsNull".equalsIgnoreCase(qName)) { try { Operator operator = new Operator(attrs); addCriterion(Restrictions.isNull(operator.getName())); } catch (Exception e) { throw new SAXException("Unable To Parse IsNull:" + attrs.getValue("name"), e); } } else if ("IsNotNull".equalsIgnoreCase(qName)) { try { Operator operator = new Operator(attrs); addCriterion(Restrictions.isNotNull(operator.getName())); } catch (Exception e) { throw new SAXException("Unable To Parse IsNotNull:" + attrs.getValue("name"), e); } } else if ("In".equalsIgnoreCase(qName)) { try { Operator operator = new Operator(attrs); if (operator.isLiteral()) { addCriterion(new LiteralInExpression(operator.getName(), (String) operator.getNativeValue())); } else { addCriterion(Restrictions.in(operator.getName(), (Collection) operator.getNativeValue())); } } catch (Exception e) { throw new SAXException("Unable To Parse In:" + attrs.getValue("name"), e); } } else if ("SizeEquals".equalsIgnoreCase(qName)) { try { Operator operator = new Operator(attrs); int i = ((Integer) operator.getNativeValue()).intValue(); addCriterion(Restrictions.sizeEq(operator.getName(), i)); } catch (Exception e) { throw new SAXException("Unable To Parse SizeEquals:" + attrs.getValue("name"), e); } } else if ("Not".equalsIgnoreCase(qName)) { notStack.push(new Object()); } else if ("Or".equalsIgnoreCase(qName)) { opStack.push(Restrictions.disjunction()); } else if ("And".equalsIgnoreCase(qName)) { opStack.push(Restrictions.conjunction()); } else { throw new SAXException("Element Name[" + qName + "] Not Recognized."); } }
From source file:com.hmsinc.epicenter.model.surveillance.impl.SurveillanceRepositoryImpl.java
License:Open Source License
/** * @param c/*from w w w.ja v a 2 s.c o m*/ * @param startDate * @param endDate * @param includeAll * @param includeFacilityLocation * @param filter * @return */ private Criteria applyAnomalyCriteria(final Criteria c, final DateTime startDate, final DateTime endDate, final boolean includeAll, final Geometry filter, final Geometry excludeFacilityEventsFilter) { if (startDate == null && endDate != null) { c.add(Restrictions.lt("analysisTimestamp", endDate)); } else if (startDate != null && endDate == null) { c.add(Restrictions.gt("analysisTimestamp", startDate)); } else if (startDate != null && endDate != null) { c.add(Restrictions.between("analysisTimestamp", startDate, endDate)); } if (!includeAll) { c.add(Restrictions.isEmpty("investigations")).createCriteria("disposition") .add(Restrictions.eq("type", WorkflowStateType.INITIAL)); } if (filter != null && excludeFacilityEventsFilter == null) { c.createCriteria("geography").add(SpatialRestrictions.withinOrFilter("geometry", filter, 1000, true)); } else if (filter == null && excludeFacilityEventsFilter != null) { final Conjunction conjunction = Restrictions.conjunction(); c.createAlias("geography", "eventGeography"); c.createAlias("task", "eventTask"); conjunction.add(Restrictions.eq("eventTask.location", AnalysisLocation.FACILITY)); conjunction.add(SpatialRestrictions.withinOrFilter("eventGeography.geometry", excludeFacilityEventsFilter, 1000, true)); c.add(Restrictions.not(conjunction)); } else if (filter != null && excludeFacilityEventsFilter != null) { final Conjunction conjunction = Restrictions.conjunction(); c.createAlias("geography", "eventGeography"); c.createAlias("task", "eventTask"); // Find events where we have unlimited access conjunction.add(SpatialRestrictions.withinOrFilter("eventGeography.geometry", filter, 1000, true)); // Filter events in the limited region final Conjunction facilityEventsConjunction = Restrictions.conjunction(); facilityEventsConjunction.add(Restrictions.eq("eventTask.location", AnalysisLocation.FACILITY)); facilityEventsConjunction.add(SpatialRestrictions.withinOrFilter("eventGeography.geometry", excludeFacilityEventsFilter, 1000, true)); conjunction.add(Restrictions.not(facilityEventsConjunction)); c.add(conjunction); } return c; }
From source file:com.ihsolution.hqipo.dao.utils.QueryHelper.java
License:Open Source License
/** * convert the InputDTO to QueryHelper to get the count (omitting sort order) *//*from w w w . j ava 2 s . c om*/ @SuppressWarnings("deprecation") public QueryHelper convertDtoToQhelperForCount(InputDTO dto) { if (dto == null) return this; this.dto = dto; int ind = 0; try { Junction j = null; Junction conj = Restrictions.conjunction(); Junction disj = Restrictions.disjunction(); String operator = ""; boolean disjB = false, conjB = false; if (dto.getFetchMode() != null) { for (Map.Entry<String, String> entry : dto.getFetchMode().entrySet()) { FetchMode fmode = null; logger.debug("FetchMode key=" + entry.getKey() + " val=" + entry.getValue()); if (entry.getValue().equals("join")) fmode = FetchMode.JOIN; else if (entry.getValue().equals("eager")) fmode = FetchMode.EAGER; else if (entry.getValue().equals("lazy")) fmode = FetchMode.LAZY; else fmode = FetchMode.LAZY; this.detCriteria.setFetchMode(entry.getKey(), fmode); } } for (String field : dto.getFields()) { operator = dto.getOperators().get(ind); if ("or".equals(operator)) { j = disj; disjB = true; } else { j = conj; conjB = true; } this.addFieldAndVal(createAliases(field), dto.getValues().get(ind), dto.getOperations().get(ind), j); ind++; } if (dto.getExpressions() != null) { for (String expr : dto.getExpressions()) { j.add(Expression.sql(expr)); } } if (dto.getFieldsToSelect() != null && dto.getFieldsToSelect().length > 0) { ProjectionList prList = Projections.projectionList(); Projection projection = null; for (String fld : dto.getFieldsToSelect()) { String als = this.createAliases(fld); prList.add(Projections.property(als)); } if (dto.isDistinct()) { projection = Projections.distinct(prList); } else { projection = prList; } this.detCriteria.setProjection(projection); } else { this.fldSelectedSet = false; } if (disjB) detCriteria.add(disj); if (conjB) detCriteria.add(conj); if (logger.isDebugEnabled()) { if (conjB) logger.debug("conjuction=" + conj.toString()); if (disjB) logger.debug("disjunction=" + disj.toString()); } if (dto.isDistinct()) detCriteria.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY); } catch (Exception e) { e.printStackTrace(); logger.error(e); } return this; }
From source file:com.inkubator.hrm.dao.impl.EmpCareerHistoryDaoImpl.java
private void doSearchEmpRotasiByParamReport(ReportEmpMutationParameter searchParameter, Criteria criteria) { if (searchParameter.getStartDate() != null && searchParameter.getEndDate() != null) { Conjunction conjunction = Restrictions.conjunction(); conjunction.add(Restrictions.ge("tglPenganngkatan", searchParameter.getStartDate())); conjunction.add(Restrictions.le("tglPenganngkatan", searchParameter.getEndDate())); criteria.add(conjunction);/*from w w w .ja va 2 s .c om*/ } }
From source file:com.jaspersoft.jasperserver.api.metadata.common.service.impl.hibernate.HibernateFilter.java
License:Open Source License
public void applyConjunction(List filterElements) { Conjunction conjunction = Restrictions.conjunction(); applyJunction(filterElements, conjunction); }
From source file:com.jaspersoft.jasperserver.api.metadata.common.service.impl.hibernate.HibernateFilter.java
License:Open Source License
public void applyURIFilter(URIFilter filter) { String uri = filter.getURI(); String folder = RepositoryUtils.getParentPath(uri); if (folder == null) { throw new JSException("Invalid resource URI " + uri); }/*from www. j av a 2 s. co m*/ String name = RepositoryUtils.getName(uri); add(Restrictions.conjunction().add(parentFolderRestriction(folder)).add(Restrictions.eq("name", name))); }