List of usage examples for org.hibernate.criterion Projections property
public static PropertyProjection property(String propertyName)
From source file:com.evolveum.midpoint.repo.sql.QueryInterpreterTest.java
License:Apache License
@Test public void asdf() throws Exception { Session session = open();/*from www . j a v a 2 s. c om*/ try { Criteria main = session.createCriteria(RUser.class, "u"); Criteria a = main.createCriteria("assignments", "a"); a.add(Restrictions.eq("a.assignmentOwner", RAssignmentOwner.FOCUS)); Criteria e = a.createCriteria("a.extension"); Criteria s = e.createCriteria("strings", "s"); Conjunction c2 = Restrictions.conjunction(); c2.add(Restrictions.eq("s.extensionType", RAssignmentExtensionType.EXTENSION)); c2.add(Restrictions.eq("s.name", new QName("http://midpoint.evolveum.com/blabla", "foo"))); c2.add(Restrictions.eq("s.value", "uid=jbond,ou=People,dc=example,dc=com")); Conjunction c1 = Restrictions.conjunction(); c1.add(Restrictions.eq("a.targetRef.targetOid", "1234")); c1.add(Restrictions.eq("a.targetRef.type", RObjectType.ORG)); main.add(Restrictions.and(c1, c2)); main.setProjection(Projections.property("u.fullObject")); String expected = HibernateToSqlTranslator.toSql(main); LOGGER.info(">>> >>> {}", expected); } 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();//from w ww . j av a 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.evolveum.midpoint.repo.sql.SqlRepositoryServiceImpl.java
License:Apache License
private List<RObject> deleteTransitiveHierarchy(RObject rObjectToModify, Session session) throws SchemaException, DtoTranslationException { Criteria cDescendant = session.createCriteria(ROrgClosure.class) .setProjection(Projections.property("descendant")) .add(Restrictions.eq("ancestor", rObjectToModify)); Criteria cAncestor = session.createCriteria(ROrgClosure.class) .setProjection(Projections.property("ancestor")).createCriteria("ancestor", "anc") .add(Restrictions.and(Restrictions.eq("this.descendant", rObjectToModify), Restrictions.not(Restrictions.eq("anc.oid", rObjectToModify.getOid())))); Criteria cOrgClosure = session.createCriteria(ROrgClosure.class); List<RObject> ocAncestor = cAncestor.list(); List<RObject> ocDescendant = cDescendant.list(); if (ocAncestor != null && !ocAncestor.isEmpty()) { cOrgClosure.add(Restrictions.in("ancestor", ocAncestor)); } else {/* w ww . j a va 2 s . com*/ LOGGER.trace("No ancestors for object: {}", rObjectToModify.getOid()); } if (ocDescendant != null && !ocDescendant.isEmpty()) { cOrgClosure.add(Restrictions.in("descendant", ocDescendant)); } else { LOGGER.trace("No descendants for object: {}", rObjectToModify.getOid()); } List<ROrgClosure> orgClosure = cOrgClosure.list(); for (ROrgClosure o : orgClosure) { if (LOGGER.isTraceEnabled()) { RObject ancestor = o.getAncestor(); RObject descendant = o.getDescendant(); LOGGER.trace("deleting from hierarchy: A:{} D:{} depth:{}", new Object[] { RUtil.getDebugString(ancestor), RUtil.getDebugString(descendant), o.getDepth() }); } session.delete(o); } deleteHierarchy(rObjectToModify, session); return ocDescendant; }
From source file:com.fich.wafproject.dao.UserDaoImpl.java
public List<Users> findAll(int pageNumber, String[] targets, String[] names, String[] values, boolean pagination) { int pageSize = 4; Criteria crit = this.createEntityCriteria(); crit.setProjection(Projections.distinct(Projections.property("id"))); String dateFrom = "", dateTo = "", targetDate = ""; if (names != null) { for (String alias : names) { crit.createAlias(alias, alias); }/*w ww . java 2s . com*/ } int count = 0; if (values != null) { for (String value : values) { if (!value.equals("") && value != null) { if (targets[count].contains("date")) { if (dateFrom != "") { dateTo = value; } else { dateFrom = value; targetDate = targets[count]; } } else { crit.add(Restrictions.like(targets[count], "%" + value + "%")); } } count++; } if (targetDate != "") { if (dateFrom != "" && dateTo == "") { dateTo = dateFrom; } DateFormat format = new SimpleDateFormat("yyyy-MM-dd", Locale.ENGLISH); try { Date dateF = format.parse(dateFrom); Date dateT = format.parse(dateTo); crit.add(Restrictions.between(targetDate, dateF, dateT)); } catch (ParseException ex) { Logger.getLogger(UserDaoImpl.class.getName()).log(Level.SEVERE, null, ex); } } } if (pagination) { crit.setFirstResult((pageNumber - 1) * pageSize); crit.setMaxResults(pageSize); } List<Users> users = new ArrayList<Users>(); for (Object idEvent : crit.list()) { // System.out.println(idEvent); users.add(this.findById((Long) idEvent)); } return (List<Users>) users; }
From source file:com.fich.wafproject.dao.UserHistoryDaoImpl.java
@SuppressWarnings("unchecked") public List<UsersHistory> findAll(int pageNumber) { int pageSize = 6; Criteria crit = createEntityCriteria(); crit.setProjection(Projections.distinct(Projections.property("id"))); crit.setFirstResult((pageNumber - 1) * pageSize); crit.setMaxResults(pageSize);/*from w ww .j a v a 2s .com*/ List<UsersHistory> events = new ArrayList<UsersHistory>(); for (Object idUsersHistory : crit.list()) { // System.out.println(idUsersHistory); events.add(this.findById((Long) idUsersHistory)); } return events; }
From source file:com.fich.wafproject.dao.UserHistoryDaoImpl.java
public List<UsersHistory> filter(String[] values, String[] names, String[] targets, int pageNumber, String role) {/*from ww w . j av a 2 s.c om*/ int pageSize = 6; int count = 0; boolean filterByUserProperty = false, filterByUserName = false; Criteria crit = this.createEntityCriteria();//.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY); crit.setProjection(Projections.distinct(Projections.property("id"))); String dateFrom = "", dateTo = "", targetDate = ""; if (names != null) { for (String alias : names) { crit.createAlias(alias, alias); if (alias.equals("user")) filterByUserProperty = true; } } if (!filterByUserProperty && !role.equals("")) crit.createAlias("user", "user"); if (values != null) { for (String value : values) { if (!value.equals("") && value != null) { if (targets[count].contains("date")) { if (dateFrom != "") { dateTo = value; } else { dateFrom = value; targetDate = targets[count]; } } else { if (targets[count].contains("userName")) filterByUserName = true; crit.add(Restrictions.like(targets[count], "%" + value + "%")); } } count++; } if (targetDate != "") { if (dateFrom != "" && dateTo == "") { dateTo = dateFrom; } DateFormat format = new SimpleDateFormat("yyyy-MM-dd", Locale.ENGLISH); try { Date dateF = format.parse(dateFrom); Date dateT = format.parse(dateTo); crit.add(Restrictions.between(targetDate, dateF, dateT)); } catch (ParseException ex) { Logger.getLogger(UserHistoryDaoImpl.class.getName()).log(Level.SEVERE, null, ex); } } } if (!filterByUserName && !role.equals("")) crit.add(Restrictions.like("user.userName", role)); crit.setFirstResult((pageNumber - 1) * pageSize); crit.setMaxResults(pageSize); List<UsersHistory> events = new ArrayList<UsersHistory>(); for (Object idEvent : crit.list()) { events.add(this.findById((Long) idEvent)); } return (List<UsersHistory>) events; }
From source file:com.flipkart.flux.dao.EventsDAOImpl.java
License:Apache License
@Override @Transactional// w w w. j a v a 2s.c o m public List<String> findTriggeredEventsNamesBySMId(Long stateMachineInstanceId) { Criteria criteria = currentSession().createCriteria(Event.class) .add(Restrictions.eq("stateMachineInstanceId", stateMachineInstanceId)) .add(Restrictions.eq("status", Event.EventStatus.triggered)) .setProjection(Projections.property("name")); return criteria.list(); }
From source file:com.floreantpos.model.dao.TicketDAO.java
License:Open Source License
public List<Ticket> getTicketsWithSpecificFields(String... fields) { Session session = null;//from w w w .ja va2 s . c o m Criteria criteria = null; User currentUser = Application.getCurrentUser(); boolean filterUser = !currentUser.isAdministrator() || !currentUser.isManager(); try { session = createNewSession(); criteria = session.createCriteria(Ticket.class); ProjectionList projectionList = Projections.projectionList(); for (String field : fields) { projectionList.add(Projections.property(field)); } criteria.add(Restrictions.eq(Ticket.PROP_CLOSED, Boolean.FALSE)); if (filterUser) { criteria.createAlias(Ticket.PROP_OWNER, "u"); criteria.add(Restrictions.eq("u.userId", currentUser.getUserId())); } ResultTransformer transformer = new ResultTransformer() { public Object transformTuple(Object[] row, String[] arg1) { Ticket ticket = new Ticket(); ticket.setId(Integer.valueOf("" + row[0])); ticket.setDueAmount(Double.valueOf("" + row[1])); return ticket; } public List transformList(List arg0) { return arg0; } }; criteria.setProjection(projectionList).setResultTransformer(transformer); return criteria.list(); } finally { closeSession(session); } }
From source file:com.gian.dao.impl.AuthorizationDaoImpl.java
@Override public List<User> getAuthorizedUser() { //Get a list of User also by Criteria List<User> listUser = null; Session session = sessionFactory.openSession(); Transaction transaction = null;//from www. j a v a 2 s .c o m _log.info("Info: get only authorized users..."); try { transaction = session.beginTransaction(); Criteria criteria = session.createCriteria(Authorization.class) .setProjection(Projections.property("user")).add(Restrictions.eq("type", true)); listUser = (List<User>) criteria.list(); transaction.commit(); } catch (HibernateException e) { if (transaction != null) { transaction.rollback(); _log.error(e); } else { _log.error("Transaction is null"); } } finally { session.close(); } return listUser; }
From source file:com.gisgraphy.hibernate.criterion.DistanceRestrictionTest.java
License:Open Source License
@SuppressWarnings("unchecked") @Test// www .j av a 2 s. c om public void testDistanceRestrictionPointDouble() { final City p1 = GisgraphyTestHelper.createCity("paris", 48.86667F, 2.3333F, 1L); City p2 = GisgraphyTestHelper.createCity("bordeaux", 44.83333F, -0.56667F, 3L); this.cityDao.save(p1); this.cityDao.save(p2); HibernateCallback hibernateCallback = new HibernateCallback() { public Object doInHibernate(Session session) throws PersistenceException { Criteria testCriteria = session.createCriteria(City.class); List<String> fieldList = new ArrayList<String>(); fieldList.add("name"); Projection projection = Projections.property("name").as("name"); testCriteria.setProjection(projection).add(Restrictions.ne("id", p1.getId())) .add(new DistanceRestriction(p1.getLocation(), 500000D)) .setResultTransformer(Transformers.aliasToBean(_CityDTO.class)); List<_CityDTO> results = testCriteria.list(); return results; } }; List<_CityDTO> cities = (List<_CityDTO>) testDao.testCallback(hibernateCallback); assertEquals("According to the distance restriction, it should have zero result", 0, cities.size()); hibernateCallback = new HibernateCallback() { public Object doInHibernate(Session session) throws PersistenceException { Criteria testCriteria = session.createCriteria(City.class); Projection projection = Projections.property("name").as("name"); testCriteria.setProjection(projection).add(new DistanceRestriction(p1.getLocation(), 600000D)) .add(Restrictions.ne("id", p1.getId())) .setResultTransformer(Transformers.aliasToBean(_CityDTO.class)); List<_CityDTO> results = testCriteria.list(); return results; } }; cities = (List<_CityDTO>) testDao.testCallback(hibernateCallback); assertEquals("According to the distance restriction, it should have one results", 1, cities.size()); assertEquals("bordeaux", cities.get(0).getName()); }