List of usage examples for org.hibernate.criterion ProjectionList add
public ProjectionList add(Projection projection, String alias)
From source file:eu.jangos.realm.controller.world.ItemService.java
License:Apache License
/** * Return the item which has the given ID. * @param id The id of the item to be found. * @return The corresponding item or null if the item is not found. *///from www. ja v a2 s . co m public Object[] getItemByIDCharEnum(int id) { logger.debug("Loading information for the item with the id " + id); try (Session session = HibernateUtil.getWorldSession().openSession()) { ProjectionList proList = Projections.projectionList(); proList.add(Projections.property("displayid"), "displayid"); proList.add(Projections.property("ivt.id"), "id"); return (Object[]) session.createCriteria(Item.class).createAlias("inventorytype", "ivt") .setProjection(proList).add(Restrictions.eq("entry", id)).uniqueResult(); } catch (HibernateException he) { logger.debug("There was an error connecting to the database."); return null; } }
From source file:id.co.sambaltomat.core.dao.hibernate.GenericDaoHibernate.java
/** * Select specific column names/*from w w w . j a va 2 s. c om*/ * * @param id primary key * @param columnNames argumen dinamis, sebutkan nama2 column string yang di pilih dalam SELECT * @return */ public T get(final PK id, final String... columnNames) { return (T) getHibernateTemplate().execute(new HibernateCallback() { public Object doInHibernate(Session session) throws HibernateException, SQLException { Criteria criteria = session.createCriteria(persistentClass, "talias"); criteria.add(Restrictions.idEq(id)); ProjectionList projectionList = Projections.projectionList(); for (String columnName : columnNames) { projectionList.add(Projections.property("talias." + columnName), columnName); } criteria.setProjection(projectionList); criteria.setResultTransformer(new AliasToBeanResultTransformer(persistentClass)); Object returnObject = criteria.uniqueResult(); return returnObject; } }); }
From source file:ispok.dao.VisitorHibernateJpaDao.java
@Override public <ENTITY> List<ENTITY> getPage(int first, int rows, String sortBy, boolean ascending, Map<String, Object> filters, Class<ENTITY> clazz) { logger.entry();/* w w w . j av a 2 s . c om*/ Session session = getEntityManager().unwrap(Session.class); Criteria criteria = session.createCriteria(clazz, "visitor"); for (Map.Entry<String, Object> filter : filters.entrySet()) { logger.debug("Filter: {}={}", filter.getKey(), filter.getValue()); if ("id".equals(filter.getKey())) { criteria.add(Restrictions.eq("id", Long.parseLong(filter.getValue().toString()))); } else { criteria.add(Restrictions.ilike(filter.getKey(), (String) filter.getValue(), MatchMode.START)); } } if (ascending) { criteria.addOrder(Order.asc(sortBy)); } else { criteria.addOrder(Order.desc(sortBy)); } criteria.setFirstResult(first); criteria.setMaxResults(rows); ProjectionList projectionList = Projections.projectionList(); projectionList.add(Projections.property("id"), "id") .add(Projections.property("visitor.firstName"), "firstName") .add(Projections.property("visitor.lastName"), "lastName") .add(Projections.property("visitor.birthDate"), "birthDate") .add(Projections.property("visitor.nin"), "nin") .add(Projections.property("visitor.nickname"), "nickname") .add(Projections.property("visitor.telephone"), "telephone") .add(Projections.property("visitor.email"), "email").add(Projections.property("visitor.sex"), "sex") .add(Projections.property("visitor.passwordHash"), "passwordHash") .add(Projections.property("visitor.saltHash"), "saltHash") .add(Projections.property("visitor.idNumber"), "idNumber") .add(Projections.property("visitor.bonusPoints"), "bonusPoints") .add(Projections.property("visitor.citizenship"), "citizenship") .add(Projections.property("visitor.domicile"), "domicile") .add(Projections.property("visitor.bonusPoints"), "bonusPoints"); criteria.setProjection(projectionList); criteria.setResultTransformer(Transformers.aliasToBean(clazz)); List<ENTITY> list = criteria.list(); logger.exit(); return list; }
From source file:mx.edu.um.mateo.activos.dao.impl.ActivoDaoHibernate.java
License:Open Source License
@Override @Transactional(readOnly = true)// w ww. j a v a 2 s . c o m public Map<String, Object> lista(Map<String, Object> params) { log.debug("Buscando lista de activos con params {}", params); if (params == null) { params = new HashMap<>(); } if (!params.containsKey("max")) { params.put("max", 10); } else { params.put("max", Math.min((Integer) params.get("max"), 100)); } if (params.containsKey("pagina")) { Long pagina = (Long) params.get("pagina"); Long offset = (pagina - 1) * (Integer) params.get("max"); params.put("offset", offset.intValue()); } if (!params.containsKey("offset")) { params.put("offset", 0); } Criteria criteria = currentSession().createCriteria(Activo.class); Criteria countCriteria = currentSession().createCriteria(Activo.class); criteria.createAlias("tipoActivo", "ta"); countCriteria.createAlias("tipoActivo", "ta"); if (params.containsKey("empresa")) { criteria.createCriteria("empresa").add(Restrictions.idEq(params.get("empresa"))); countCriteria.createCriteria("empresa").add(Restrictions.idEq(params.get("empresa"))); } if (params.containsKey("tipoActivoIds")) { criteria.add(Restrictions.in("ta.id", (List) params.get("tipoActivoIds"))); countCriteria.add(Restrictions.in("ta.id", (List) params.get("tipoActivoIds"))); } if (params.containsKey("cuentaId")) { criteria.createCriteria("centroCosto").add(Restrictions.eq("id.idCosto", params.get("cuentaId"))); countCriteria.createCriteria("centroCosto").add(Restrictions.eq("id.idCosto", params.get("cuentaId"))); } if (params.containsKey("proveedorId")) { criteria.createCriteria("proveedor").add(Restrictions.idEq(params.get("proveedorId"))); countCriteria.createCriteria("proveedor").add(Restrictions.idEq(params.get("proveedorId"))); } Date fechaIniciado = null; if (params.containsKey("fechaIniciado")) { fechaIniciado = (Date) params.get("fechaIniciado"); criteria.add(Restrictions.ge("fechaCompra", fechaIniciado)); countCriteria.add(Restrictions.ge("fechaCompra", fechaIniciado)); } Date fechaTerminado = null; if (params.containsKey("fechaTerminado")) { Calendar cal = Calendar.getInstance(); cal.setTime((Date) params.get("fechaTerminado")); cal.set(Calendar.HOUR_OF_DAY, 23); cal.set(Calendar.MINUTE, 59); cal.set(Calendar.SECOND, 59); cal.set(Calendar.MILLISECOND, 999); fechaTerminado = cal.getTime(); criteria.add(Restrictions.le("fechaCompra", fechaTerminado)); countCriteria.add(Restrictions.le("fechaCompra", fechaTerminado)); } if (params.containsKey("bajas")) { if (fechaIniciado != null) { criteria.add(Restrictions.eq("inactivo", true)); countCriteria.add(Restrictions.eq("inactivo", true)); criteria.add(Restrictions.ge("fechaInactivo", fechaIniciado)); countCriteria.add(Restrictions.ge("fechaInactivo", fechaIniciado)); if (fechaTerminado != null) { criteria.add(Restrictions.le("fechaInactivo", fechaTerminado)); countCriteria.add(Restrictions.le("fechaInactivo", fechaTerminado)); } } else if (fechaTerminado != null) { criteria.add(Restrictions.eq("inactivo", true)); countCriteria.add(Restrictions.eq("inactivo", true)); criteria.add(Restrictions.le("fechaInactivo", fechaTerminado)); countCriteria.add(Restrictions.le("fechaInactivo", fechaTerminado)); } else { criteria.add(Restrictions.eq("inactivo", true)); countCriteria.add(Restrictions.eq("inactivo", true)); } } else { criteria.add(Restrictions.eq("inactivo", false)); countCriteria.add(Restrictions.eq("inactivo", false)); } if (params.containsKey("reubicaciones")) { if (fechaIniciado != null) { criteria.add(Restrictions.isNotNull("fechaReubicado")); countCriteria.add(Restrictions.isNotNull("fechaReubicado")); criteria.add(Restrictions.ge("fechaReubicado", fechaIniciado)); countCriteria.add(Restrictions.ge("fechaReubicado", fechaIniciado)); if (fechaTerminado != null) { criteria.add(Restrictions.le("fechaReubicado", fechaIniciado)); countCriteria.add(Restrictions.le("fechaReubicado", fechaIniciado)); } } else if (fechaTerminado != null) { criteria.add(Restrictions.isNotNull("fechaReubicado")); countCriteria.add(Restrictions.isNotNull("fechaReubicado")); criteria.add(Restrictions.le("fechaReubicado", fechaIniciado)); countCriteria.add(Restrictions.le("fechaReubicado", fechaIniciado)); } else { criteria.add(Restrictions.isNotNull("fechaReubicado")); countCriteria.add(Restrictions.isNotNull("fechaReubicado")); } } if (params.containsKey("responsableNombre")) { criteria.add(Restrictions.ilike("responsable", (String) params.get("responsable"), MatchMode.ANYWHERE)); countCriteria .add(Restrictions.ilike("responsable", (String) params.get("responsable"), MatchMode.ANYWHERE)); } if (params.containsKey("filtro")) { String filtro = (String) params.get("filtro"); Disjunction propiedades = Restrictions.disjunction(); propiedades.add(Restrictions.ilike("folio", filtro, MatchMode.ANYWHERE)); propiedades.add(Restrictions.ilike("procedencia", filtro, MatchMode.ANYWHERE)); propiedades.add(Restrictions.ilike("factura", filtro, MatchMode.ANYWHERE)); propiedades.add(Restrictions.ilike("pedimento", filtro, MatchMode.ANYWHERE)); propiedades.add(Restrictions.ilike("poliza", filtro, MatchMode.ANYWHERE)); propiedades.add(Restrictions.ilike("codigo", filtro, MatchMode.ANYWHERE)); propiedades.add(Restrictions.ilike("descripcion", filtro, MatchMode.ANYWHERE)); propiedades.add(Restrictions.ilike("marca", filtro, MatchMode.ANYWHERE)); propiedades.add(Restrictions.ilike("modelo", filtro, MatchMode.ANYWHERE)); propiedades.add(Restrictions.ilike("ubicacion", filtro, MatchMode.ANYWHERE)); propiedades.add(Restrictions.ilike("responsable", filtro, MatchMode.ANYWHERE)); criteria.add(propiedades); countCriteria.add(propiedades); } if (params.containsKey("order")) { criteria.addOrder(Order.asc("ta.cuenta.id.idCtaMayor")); String campo = (String) params.get("order"); if (params.get("sort").equals("desc")) { criteria.addOrder(Order.desc(campo)); } else { criteria.addOrder(Order.asc(campo)); } } else { criteria.addOrder(Order.asc("ta.cuenta.id.idCtaMayor")); criteria.addOrder(Order.desc("folio")); } if (!params.containsKey("reporte")) { criteria.setFirstResult((Integer) params.get("offset")); criteria.setMaxResults((Integer) params.get("max")); } params.put("activos", criteria.list()); countCriteria.setProjection(Projections.rowCount()); params.put("cantidad", (Long) countCriteria.list().get(0)); ProjectionList list = Projections.projectionList(); list.add(Projections.sum("depreciacionAnual"), "depreciacionAnual"); list.add(Projections.sum("depreciacionMensual"), "depreciacionMensual"); list.add(Projections.sum("depreciacionAcumulada"), "depreciacionAcumulada"); list.add(Projections.sum("moi"), "moi"); list.add(Projections.groupProperty("fechaDepreciacion"), "fechaDepreciacion"); countCriteria.setProjection(list); List<?> proyecciones = countCriteria.list(); Iterator<?> iterator = proyecciones.iterator(); if (iterator.hasNext()) { Object[] obj = (Object[]) iterator.next(); NumberFormat nf = DecimalFormat.getInstance(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd"); Date fecha; if (obj[4] != null) { fecha = (Date) obj[4]; } else { fecha = new Date(); } params.put("resumen", new String[] { nf.format(obj[0]), nf.format(obj[1]), nf.format(obj[2]), nf.format(obj[3]), sdf.format(fecha) }); } return params; }
From source file:net.firejack.platform.core.store.statistics.LogTransactionStore.java
License:Apache License
@Override @Transactional(readOnly = true)// w w w .j av a 2s . co m public List<LogTransactionModel> findAggregatedByTermAndDates(Integer offset, Integer limit, String term, String lookup, Date startDate, Date endDate, String sortColumn, String sortDirection, MetricGroupLevel level) { ProjectionList projectionList = Projections.projectionList(); projectionList.add(Projections.min("hourPeriod"), "startTime").add(Projections.max("hourPeriod"), "endTime") .add(Projections.groupProperty("packageLookup"), "packageLookup") .add(Projections.sum("transactions"), "transactions") .add(Projections.sum("entitiesLoaded"), "entitiesLoaded") .add(Projections.sum("entitiesUpdated"), "entitiesUpdated") .add(Projections.sum("entitiesInserted"), "entitiesInserted") .add(Projections.sum("entitiesDeleted"), "entitiesDeleted") .add(Projections.sum("entitiesFetched"), "entitiesFetched") .add(Projections.sum("collectionsLoaded"), "collectionsLoaded") .add(Projections.sum("collectionsUpdated"), "collectionsUpdated") .add(Projections.sum("collectionsRecreated"), "collectionsRecreated") .add(Projections.sum("collectionsRemoved"), "collectionsRemoved") .add(Projections.sum("collectionsFetched"), "collectionsFetched") .add(Projections.max("maxQueryTime"), "maxQueryTime"); switch (level) { case HOUR: projectionList.add(Projections.groupProperty("hourPeriod").as("hourPeriod")); break; case DAY: projectionList.add(Projections.groupProperty("dayPeriod").as("dayPeriod")); break; case WEEK: projectionList.add(Projections.groupProperty("weekPeriod").as("weekPeriod")); break; case MONTH: projectionList.add(Projections.groupProperty("monthPeriod").as("monthPeriod")); break; } return findAllByProjection(offset, limit, term, lookup, startDate, endDate, sortColumn, sortDirection, projectionList); }
From source file:net.firejack.platform.core.store.statistics.LogTransactionStore.java
License:Apache License
@Override @Transactional(readOnly = true)//from w w w . ja v a 2 s. c o m public long countAggregatedByTermAndDates(String term, String lookup, Date startDate, Date endDate, MetricGroupLevel level) { ProjectionList projectionList = Projections.projectionList(); projectionList.add(Projections.groupProperty("packageLookup"), "packageLookup"); switch (level) { case HOUR: projectionList.add(Projections.groupProperty("hourPeriod").as("hourPeriod")); break; case DAY: projectionList.add(Projections.groupProperty("dayPeriod").as("dayPeriod")); break; case WEEK: projectionList.add(Projections.groupProperty("weekPeriod").as("weekPeriod")); break; case MONTH: projectionList.add(Projections.groupProperty("monthPeriod").as("monthPeriod")); break; } List<Criterion> criterions = createCriterionsForTermAndDates(term, lookup, startDate, endDate); return findCountWithFilter(criterions, null, null, projectionList); }
From source file:net.firejack.platform.core.store.statistics.MetricsEntryStore.java
License:Apache License
@Override public List<AggregatedMetricsEntryModel> findAggregatedByTermAndDates(Integer offset, Integer limit, String term, String lookup, Date startDate, Date endDate, String sortColumn, String sortDirection, MetricGroupLevel level, LogEntryType logEntryType) { ProjectionList projectionList = Projections.projectionList(); projectionList.add(Projections.min("hourPeriod"), "startTime").add(Projections.max("hourPeriod"), "endTime") .add(Projections.groupProperty("lookup"), "lookup") .add(Projections.groupProperty("systemAccountName"), "systemAccountName") .add(Projections.groupProperty("username"), "username") .add(Projections.sum("numberOfInvocations"), "numberOfInvocations") .add(Projections.avg("averageExecutionTime"), "averageExecutionTime") .add(Projections.min("minResponseTime"), "minResponseTime") .add(Projections.max("maxResponseTime"), "maxResponseTime") .add(Projections.avg("successRate"), "successRate"); switch (level) { case HOUR://from www. j a va2 s.c om projectionList.add(Projections.groupProperty("hourPeriod").as("hourPeriod")); break; case DAY: projectionList.add(Projections.groupProperty("dayPeriod").as("dayPeriod")); break; case WEEK: projectionList.add(Projections.groupProperty("weekPeriod").as("weekPeriod")); break; case MONTH: projectionList.add(Projections.groupProperty("monthPeriod").as("monthPeriod")); break; } return findAllByProjection(offset, limit, term, lookup, startDate, endDate, sortColumn, sortDirection, logEntryType, projectionList); }
From source file:net.firejack.platform.core.store.statistics.MetricsEntryStore.java
License:Apache License
@Override @Transactional(readOnly = true)//from ww w . j a v a 2s. c o m public List<AggregatedMetricsEntryModel> findAllByTermAndDates(Integer offset, Integer limit, String term, String lookup, Date startDate, Date endDate, String sortColumn, String sortDirection, LogEntryType logEntryType) { ProjectionList projectionList = Projections.projectionList(); projectionList.add(Projections.property("hourPeriod"), "startTime") .add(Projections.property("hourPeriod"), "endTime") .add(Projections.property("lookup"), "alias_lookup") .add(Projections.property("systemAccountName"), "alias_systemAccountName") .add(Projections.property("username"), "alias_username") .add(Projections.property("numberOfInvocations"), "numberOfInvocations") .add(Projections.property("averageExecutionTime"), "averageExecutionTime") .add(Projections.property("minResponseTime"), "minResponseTime") .add(Projections.property("maxResponseTime"), "maxResponseTime") .add(Projections.property("successRate"), "successRate"); return findAllByProjection(offset, limit, term, lookup, startDate, endDate, sortColumn, sortDirection, logEntryType, projectionList); }
From source file:net.firejack.platform.core.store.statistics.MetricsEntryStore.java
License:Apache License
public long countAggregatedByTermAndDates(String term, String lookup, Date startDate, Date endDate, MetricGroupLevel level, LogEntryType logEntryType) { ProjectionList projectionList = Projections.projectionList(); projectionList.add(Projections.groupProperty("lookup"), "lookup") .add(Projections.groupProperty("systemAccountName"), "systemAccountName") .add(Projections.groupProperty("username"), "username"); switch (level) { case HOUR:/*from w w w . ja va 2 s . co m*/ projectionList.add(Projections.groupProperty("hourPeriod").as("hourPeriod")); break; case DAY: projectionList.add(Projections.groupProperty("dayPeriod").as("dayPeriod")); break; case WEEK: projectionList.add(Projections.groupProperty("weekPeriod").as("weekPeriod")); break; case MONTH: projectionList.add(Projections.groupProperty("monthPeriod").as("monthPeriod")); break; } List<Criterion> criterions = createCriterionsForTermAndDates(term, lookup, startDate, endDate, logEntryType); return findCountWithFilter(criterions, null, null, projectionList); }
From source file:org.apache.usergrid.apm.service.charts.service.LogChartUtil.java
License:Apache License
public static ProjectionList getProjectionList(LogChartCriteria cq) { ProjectionList projList = Projections.projectionList(); //Adding GroupBy. We will allow only one groupby so that chart looks cleaner. if (cq.isGroupedByApp()) { projList.add(Projections.groupProperty("this.appId"), "appId"); } else if (cq.isGroupedByNetworkType()) { projList.add(Projections.groupProperty("this.networkType"), "networkType"); }/*from www .j a va 2s . c o m*/ else if (cq.isGroupedByNetworkCarrier()) { projList.add(Projections.groupProperty("this.networkCarrier"), "networkCarrier"); } switch (cq.getSamplePeriod()) { //see http://stackoverflow.com/questions/84644/hibernate-query-by-example-and-projections on why "this." is needed //in following lines case MINUTE: projList.add(Projections.groupProperty("this.endMinute"), "endMinute"); break; case HOUR: projList.add(Projections.groupProperty("this.endHour"), "endHour"); break; case DAY_WEEK: projList.add(Projections.groupProperty("this.endDay"), "endDay"); break; case DAY_MONTH: projList.add(Projections.groupProperty("this.endDay"), "endDay"); break; case MONTH: projList.add(Projections.groupProperty("this.endMonth"), "endMonth"); break; } //may run into this bug because of alias http://stackoverflow.com/questions/84644/hibernate-query-by-example-and-projections //And I did run into it. ouch. Fix was to add this.filedName !! return projList; }