List of usage examples for org.hibernate.criterion DetachedCriteria forClass
public static DetachedCriteria forClass(Class clazz, String alias)
From source file:com.evolveum.midpoint.repo.sql.query.custom.ShadowQueryWithDisjunction.java
License:Apache License
@Override public RQuery createQuery(ObjectQuery objectQuery, Class<? extends ObjectType> type, Collection<SelectorOptions<GetOperationOptions>> options, boolean countingObjects, Session session) { DetachedCriteria c1 = DetachedCriteria.forClass(ClassMapper.getHQLTypeClass(ShadowType.class), "s"); c1.createCriteria("strings", "s1", JoinType.LEFT_OUTER_JOIN); ParsedQuery parsedQuery = parse(objectQuery); Conjunction conjunction = Restrictions.conjunction(); conjunction// w ww.j ava 2 s .c om .add(Restrictions.eq("resourceRef.targetOid", parsedQuery.refFilter.getValues().get(0).getOid())); Disjunction disjunction = Restrictions.disjunction(); disjunction.add(createAttributeEq(parsedQuery.eqUidFilter, parsedQuery.eqUidFilter.getPath().lastNamed().getName())); disjunction.add(createAttributeEq(parsedQuery.eqNameFilter, SchemaConstantsGenerated.ICF_S_NAME)); conjunction.add(disjunction); c1.add(conjunction); if (countingObjects) { c1.setProjection(Projections.countDistinct("s.oid")); return new RQueryCriteriaImpl(c1.getExecutableCriteria(session)); } c1.setProjection(Projections.distinct(Projections.property("s.oid"))); Criteria cMain = session.createCriteria(ClassMapper.getHQLTypeClass(ShadowType.class), "o"); cMain.add(Subqueries.propertyIn("oid", c1)); if (objectQuery != null && objectQuery.getPaging() != null) { cMain = updatePagingAndSorting(cMain, type, objectQuery.getPaging()); } ProjectionList projections = Projections.projectionList(); projections.add(Projections.property("fullObject")); projections.add(Projections.property("stringsCount")); projections.add(Projections.property("longsCount")); projections.add(Projections.property("datesCount")); projections.add(Projections.property("referencesCount")); projections.add(Projections.property("polysCount")); projections.add(Projections.property("booleansCount")); cMain.setProjection(projections); cMain.setResultTransformer(GetObjectResult.RESULT_TRANSFORMER); return new RQueryCriteriaImpl(cMain); }
From source file:com.evolveum.midpoint.repo.sql.QueryInterpreterTest.java
License:Apache License
@Test public void queryOrgTreeFindOrgs() throws Exception { Session session = open();/* w w w . ja v a 2 s . co m*/ try { Criteria main = session.createCriteria(ROrg.class, "o"); ProjectionList projections = Projections.projectionList(); addFullObjectProjectionList("o", projections, false); main.setProjection(projections); DetachedCriteria detached = DetachedCriteria.forClass(RParentOrgRef.class, "p"); detached.setProjection(Projections.distinct(Projections.property("p.ownerOid"))); detached.add(Restrictions.eq("p.targetOid", "some oid")); main.add(Subqueries.propertyIn("o.oid", detached)); main.addOrder(Order.asc("o.name.orig")); String expected = HibernateToSqlTranslator.toSql(main); OrgFilter orgFilter = OrgFilter.createOrg("some oid", OrgFilter.Scope.ONE_LEVEL); ObjectQuery objectQuery = ObjectQuery.createObjectQuery(orgFilter); objectQuery .setPaging(ObjectPaging.createPaging(null, null, ObjectType.F_NAME, OrderDirection.ASCENDING)); String real = getInterpretedQuery(session, OrgType.class, objectQuery); LOGGER.info("exp. query>\n{}\nreal query>\n{}", new Object[] { expected, real }); OperationResult result = new OperationResult("query org structure"); repositoryService.searchObjects(OrgType.class, objectQuery, null, result); AssertJUnit.assertEquals(expected, real); } finally { close(session); } }
From source file:com.evolveum.midpoint.repo.sql.QueryInterpreterTest.java
License:Apache License
@Test public void test310QueryNameAndOrg() throws Exception { Session session = open();/* w w w .j ava 2 s. c o m*/ try { DetachedCriteria detached = DetachedCriteria.forClass(ROrgClosure.class, "cl"); detached.setProjection(Projections.distinct(Projections.property("cl.descendantOid"))); detached.add(Restrictions.eq("cl.ancestorOid", "1234")); detached.add(Restrictions.ne("cl.descendantOid", "1234")); Criteria main = session.createCriteria(RUser.class, "u"); String mainAlias = "u"; ProjectionList projections = Projections.projectionList(); projections.add(Projections.property("fullObject")); projections.add(Projections.property("stringsCount")); projections.add(Projections.property("longsCount")); projections.add(Projections.property("datesCount")); projections.add(Projections.property("referencesCount")); projections.add(Projections.property("polysCount")); main.setProjection(projections); Conjunction c = Restrictions.conjunction(); c.add(Restrictions.and(Restrictions.eq("u.name.orig", "cpt. Jack Sparrow"), Restrictions.eq("u.name.norm", "cpt jack sparrow"))); c.add(Subqueries.propertyIn(mainAlias + ".oid", detached)); main.add(c); main.addOrder(Order.asc("u.name.orig")); String expected = HibernateToSqlTranslator.toSql(main); EqualFilter eqFilter = EqualFilter.createEqual(ObjectType.F_NAME, ObjectType.class, prismContext, null, new PolyString("cpt. Jack Sparrow", "cpt jack sparrow")); OrgFilter orgFilter = OrgFilter.createOrg("12341234-1234-1234-1234-123412341234"); ObjectQuery query = ObjectQuery.createObjectQuery(AndFilter.createAnd(eqFilter, orgFilter)); query.setPaging(ObjectPaging.createPaging(null, null, ObjectType.F_NAME, OrderDirection.ASCENDING)); String real = getInterpretedQuery(session, UserType.class, query); LOGGER.info("exp. query>\n{}\nreal query>\n{}", new Object[] { expected, real }); AssertJUnit.assertEquals(expected, real); } finally { close(session); } }
From source file:com.hmsinc.epicenter.model.workflow.impl.WorkflowRepositoryImpl.java
License:Open Source License
/** * Get the subquery for filtering based on events. * //from ww w.j a v a 2 s . c om * @param geometry * @return */ private DetachedCriteria getInvestigationGeometryFilter(final Geometry geometry) { final DetachedCriteria dc = DetachedCriteria.forClass(Event.class, "event"); dc.createCriteria("event.investigations").add(Restrictions.eqProperty("id", "investigation.id")); dc.createCriteria("event.geography") .add(SpatialRestrictions.withinOrFilter("geometry", geometry, 1000, true)); dc.setProjection(Projections.property("id")); // dc.setComment(" */ /*+ ORDERED "); return dc; }
From source file:com.inkubator.hrm.dao.impl.EmpDataDaoImpl.java
@Override public List<EmpData> getAllDataNotExistInUserByParam(String param, int firstResult, int maxResults, Order order) {//from ww w . ja v a2 s. c o m DetachedCriteria subQuery = DetachedCriteria.forClass(HrmUser.class, "user") .setProjection(Projections.property("user.id")); subQuery.add(Property.forName("employee.id").eqProperty("user.empData.id")); Criteria criteria = getCurrentSession().createCriteria(getEntityClass(), "employee"); criteria.add(Subqueries.notExists(subQuery)); criteria = this.doSearchNotExistInUserByParam(param, criteria); criteria.setFirstResult(firstResult); criteria.setMaxResults(maxResults); criteria.addOrder(order); return criteria.list(); }
From source file:com.inkubator.hrm.dao.impl.EmpDataDaoImpl.java
@Override public Long getTotalNotExistInUserByParam(String param) { DetachedCriteria subQuery = DetachedCriteria.forClass(HrmUser.class, "user") .setProjection(Projections.property("user.id")); subQuery.add(Property.forName("employee.id").eqProperty("user.empData.id")); Criteria criteria = getCurrentSession().createCriteria(getEntityClass(), "employee"); criteria.add(Subqueries.notExists(subQuery)); criteria = this.doSearchNotExistInUserByParam(param, criteria); return (Long) criteria.setProjection(Projections.rowCount()).uniqueResult(); }
From source file:com.isdemu.dao.impl.TBC_ClaseActivoDaoImpl.java
@Override public List getAll() { // TODO Auto-generated method stub DetachedCriteria dc = DetachedCriteria.forClass(TbcClaseActivo.class, "clase"); dc.createAlias("clase.tbcClasificacionActivo", "clasi"); // System.out.println("criteria="+dc.getExecutableCriteria(sessionFactory.getCurrentSession()).list().get(0)); // dc.addOrder(Order.asc("codigo_inventario")); return dc.getExecutableCriteria(sessionFactory.getCurrentSession()).list(); }
From source file:com.isdemu.dao.impl.TBC_ClaseActivoDaoImpl.java
@Override public List getAllidClasi(Serializable id) { DetachedCriteria dc = DetachedCriteria.forClass(TbcClaseActivo.class, "clase"); dc.createAlias("clase.tbcClasificacionActivo", "clasi"); dc.add(Restrictions.eq("clasi.idClasificacionActivo", id)); return dc.getExecutableCriteria(sessionFactory.getCurrentSession()).list(); }
From source file:com.isdemu.dao.impl.TBC_ClaseActivoDaoImpl.java
@Override public List LastCodClase(Serializable id) { DetachedCriteria dc = DetachedCriteria.forClass(TbcClaseActivo.class, "clase"); dc.createAlias("clase.tbcClasificacionActivo", "clasi"); dc.add(Restrictions.eq("clasi.idClasificacionActivo", id)); dc.addOrder(Order.desc("idClaseActivo")); return dc.getExecutableCriteria(sessionFactory.getCurrentSession()).list(); }
From source file:com.isdemu.dao.impl.TBC_ClasificacionActivoDaoImpl.java
@Override public List getAllidClasi(Serializable id) { DetachedCriteria dc = DetachedCriteria.forClass(TbcClasificacionActivo.class, "clase"); // dc.createAlias("clase.tbcClasificacionActivo", "clasi"); //dc.add(Restrictions.eq("clasi.idClasificacionActivo", id)); return dc.getExecutableCriteria(sessionFactory.getCurrentSession()).list(); }