List of usage examples for org.hibernate.transform ResultTransformer ResultTransformer
ResultTransformer
From source file:br.gov.mdarte.controleacesso.cd.PerfilDAOImpl.java
@Override protected Object handleRecuperarSuperPerfil(Session session, String sistema, Integer paginacao, Integer linhas, Integer paginas) throws DAOException { ProjectionList projectionList = Projections.projectionList(); projectionList.add(Projections.property("id")); Criteria criterios = session.createCriteria(PerfilImpl.class); criterios.createAlias("sistema", "sistema"); criterios.add(Restrictions.eq("superUsuario", Boolean.TRUE)); criterios.setProjection(projectionList); if (sistema != null) criterios.add(Restrictions.eq("sistema.nome", sistema)); ResultTransformer resultTransformer = new ResultTransformer() { public Object transformTuple(Object[] result, String[] arg1) { return result; }// ww w. j ava2 s . co m public List transformList(List resultado) { List idPerfis = new ArrayList<Long>(); for (Object[] result : (List<Object[]>) resultado) { Collection rows = Arrays.asList(result); Iterator iteratorRow = rows.iterator(); idPerfis.add((Long) iteratorRow.next()); } return idPerfis; } }; criterios.setResultTransformer(resultTransformer); return criterios; }
From source file:com.floreantpos.model.dao.TicketDAO.java
License:Open Source License
public List<Ticket> getTicketsWithSpecificFields(String... fields) { Session session = null;//from ww w. ja v a2 s. co 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.unistrong.tracker.dao.DeviceDao.java
@SuppressWarnings({ "rawtypes", "unchecked" })
public List<Map> findDevicesCount() {
Query query = getCurrentSession().createSQLQuery(
"SELECT ifnull(t.f_service_id,0) as sid, COUNT(DISTINCT t.f_sn) as count FROM us_device t group by t.f_service_id ");
query.setResultTransformer(new ResultTransformer() {
/**/*from w w w. j a v a2 s .com*/
*
*/
private static final long serialVersionUID = -1522516056075610048L;
@Override
public Object transformTuple(Object[] values, String[] columns) {
Map<String, Object> map = new LinkedHashMap<String, Object>(1);
int i = 0;
for (String column : columns) {
map.put(column, values[i++]);
}
return map;
}
@Override
public List transformList(List list) {
return list;
}
});
return query.list();
}
From source file:monasca.api.infrastructure.persistence.hibernate.AlarmDefinitionSqlRepoImpl.java
License:Apache License
private static ResultTransformer getAlarmDefResultTransformer() { return new ResultTransformer() { private static final long serialVersionUID = -3052468375925339521L; @Override/*from w w w. ja v a 2 s .c o m*/ public Object transformTuple(final Object[] tuple, final String[] aliases) { for (int i = 0, length = aliases.length; i < length; i++) { aliases[i] = aliases[i].toUpperCase(); } return AliasToEntityMapResultTransformer.INSTANCE.transformTuple(tuple, aliases); } @Override public List transformList(final List collection) { return AliasToEntityMapResultTransformer.INSTANCE.transformList(collection); } }; }
From source file:org.babyfish.hibernate.model.loader.HibernateObjectModelScalarLoader.java
License:Open Source License
@SuppressWarnings("unchecked") private void loadScalarsImpl(Collection<ObjectModel> objectModels, int[] scalarPropertyIds) { boolean batch = objectModels.size() > 1; ObjectModel firstObjectModel = objectModels.iterator().next(); JPAObjectModelMetadata jpaObjectModelMetadata = (JPAObjectModelMetadata) firstObjectModel .getObjectModelMetadata();/*from w ww . j a v a2s . co m*/ JPAScalarProperty entityIdProperty = jpaObjectModelMetadata.getEntityIdProperty(); Map<Object, ObjectModel> idMap = new LinkedHashMap<>(); for (ObjectModel objectModel : objectModels) { idMap.put(objectModel.getScalar(entityIdProperty.getId()), objectModel); } CriteriaImpl criteria = new CriteriaImpl(jpaObjectModelMetadata.getOwnerClass().getName(), session); ProjectionList projectionList = Projections.projectionList(); if (batch) { String ownerIdPropertyName = entityIdProperty.getOwnerProperty().getName(); projectionList.add(Projections.property(ownerIdPropertyName)); } for (int scalarPropertyId : scalarPropertyIds) { String ownerPropertyName = jpaObjectModelMetadata.getScalarProperty(scalarPropertyId).getOwnerProperty() .getName(); projectionList.add(Projections.property(ownerPropertyName)); } if (batch) { criteria.add(Restrictions.in(entityIdProperty.getOwnerProperty().getName(), idMap.keySet())); } else { criteria.add(Restrictions.eq(entityIdProperty.getOwnerProperty().getName(), idMap.keySet().iterator().next())); } criteria.setProjection(projectionList).setResultTransformer(new ResultTransformer() { private static final long serialVersionUID = -1387181124646452221L; @Override public Object transformTuple(Object[] tuple, String[] aliases) { return tuple; } @SuppressWarnings("rawtypes") @Override public List transformList(List collection) { return collection; } }); List<Object[]> tuples; FlushMode oldFlushMode = session.getFlushMode(); session.setFlushMode(FlushMode.MANUAL); try { tuples = (List<Object[]>) criteria.list(); } finally { session.setFlushMode(oldFlushMode); } if (batch) { for (Object[] tuple : tuples) { ObjectModel objectModel = idMap.get(tuple[0]); for (int i = scalarPropertyIds.length - 1; i >= 0; i--) { objectModel.setScalar(scalarPropertyIds[i], tuple[i + 1]); } } } else { Object[] firstTuple = tuples.get(0); for (int i = scalarPropertyIds.length - 1; i >= 0; i--) { firstObjectModel.setScalar(scalarPropertyIds[i], firstTuple[i]); } } }
From source file:org.fourthline.konto.server.dao.AccountDAO.java
License:Open Source License
public List<Account> getAccounts(Long... ids) { if (ids == null) return null; StringBuilder sb = new StringBuilder(); sb.append("select a, mu from Account a, MonetaryUnit mu"); sb.append(" where mu.id = a.monetaryUnitId and a.id in (:ids) order by a.id asc"); Query q = getCurrentSession().createQuery(sb.toString()); q.setParameterList("ids", ids); q.setResultTransformer(new ResultTransformer() { @Override//from w ww . j a v a 2s . c o m public Object transformTuple(Object[] objects, String[] strings) { Account account = (Account) objects[0]; account.setMonetaryUnit((MonetaryUnit) objects[1]); return account; } @Override public List transformList(List list) { return list; } }); return q.list(); }
From source file:org.fourthline.konto.server.dao.AccountDAO.java
License:Open Source License
public List<Account> getAccounts(AccountsQueryCriteria criteria) { StringBuilder sb = new StringBuilder(); sb.append("select a, mu from "); sb.append(getAccountEntity(criteria.getType())).append(" a, "); sb.append("MonetaryUnit mu"); sb.append(" where mu.id = a.monetaryUnitId"); // TODO: SQL IN clause, need to split huge lists of identifiers if (!criteria.isListOfIdentifiersEmpty()) { sb.append(" and a.id in(:ids)"); } else if (criteria.getStringFilter() != null) { sb.append(" and (lower(a.name) like :nameFilter"); sb.append(" or lower(a.groupName) like :nameFilter)"); }// ww w. j a v a2s. com sb.append(" order by "); if (criteria.getOrderBy() != null && !criteria.getOrderBy().equals(Account.Property.name)) { if (criteria.getOrderBy().equals(Account.Property.groupName)) { sb.append(" lower(a.groupName)"); sb.append(criteria.isSortAscending() ? " asc" : " desc"); sb.append(" , lower(a.name)"); sb.append(criteria.isSortAscending() ? " asc" : " desc"); } } else { sb.append(" lower(a.name)"); sb.append(criteria.isSortAscending() ? " asc" : " desc"); } Query q = getCurrentSession().createQuery(sb.toString()); if (!criteria.isListOfIdentifiersEmpty()) { q.setParameterList("ids", criteria.getListOfIdentifiers()); } else if (criteria.getStringFilter() != null) { q.setString("nameFilter", (criteria.isSubstringQuery() ? "%" : "") + criteria.getStringFilter().toLowerCase() + "%"); } if (criteria.getMaxResults() != null) { q.setMaxResults(criteria.getMaxResults()); } q.setResultTransformer(new ResultTransformer() { @Override public Object transformTuple(Object[] objects, String[] strings) { Account account = (Account) objects[0]; account.setMonetaryUnit((MonetaryUnit) objects[1]); return account; } @Override public List transformList(List list) { return list; } }); return q.list(); }
From source file:org.fourthline.konto.server.dao.CurrencyDAO.java
License:Open Source License
public List<CurrencyPair> getCurrencyPairs(String fromCode, String toCode) { return getCurrentSession() .createQuery("select cp, fromUnit, toUnit from CurrencyPair cp, " + "MonetaryUnit fromUnit, MonetaryUnit toUnit " + "where " + "cp.fromCode = :from and cp.toCode = :to " + "and fromUnit.currencyCode = cp.fromCode " + "and toUnit.currencyCode = cp.toCode " + "order by cp.createdOn desc") .setString("from", fromCode).setString("to", toCode).setResultTransformer(new ResultTransformer() { @Override/* www. ja v a 2 s . c o m*/ public Object transformTuple(Object[] objects, String[] strings) { CurrencyPair pair = (CurrencyPair) objects[0]; pair.setFromUnit((MonetaryUnit) objects[1]); pair.setToUnit((MonetaryUnit) objects[2]); return pair; } @Override public List transformList(List list) { return list; } }).list(); }
From source file:org.fourthline.konto.server.dao.EntryDAO.java
License:Open Source License
public Entry populateSplits(final Entry entry) { StringBuilder sb = new StringBuilder(); sb.append("select s, sa, eaUnit, saUnit from Entry e, Split s, "); sb.append("Account ea, MonetaryUnit eaUnit, Account sa, MonetaryUnit saUnit"); sb.append(" where s.entryId = :entryId"); sb.append(" and e.id = s.entryId"); sb.append(" and ea.id = e.accountId and sa.id = s.accountId"); sb.append(" and ea.monetaryUnitId = eaUnit.id and sa.monetaryUnitId = saUnit.id"); Query q = getCurrentSession().createQuery(sb.toString()); q.setLong("entryId", entry.getId()); q.setResultTransformer(new ResultTransformer() { @Override/*from ww w .ja v a2 s . c o m*/ public Object transformTuple(Object[] objects, String[] strings) { Split split = (Split) objects[0]; split.setAccount((Account) objects[1]); split.setEntryMonetaryUnit((MonetaryUnit) objects[2]); split.setMonetaryUnit((MonetaryUnit) objects[3]); split.setEntry(entry); return split; } @Override public List transformList(List list) { return list; } }); entry.setSplits(q.list()); return entry; }
From source file:org.fourthline.konto.server.dao.EntryDAO.java
License:Open Source License
public Split getSplit(Long id) { StringBuilder sb = new StringBuilder(); sb.append("select s, sa, eaUnit, saUnit from Entry e, Split s, "); sb.append("Account ea, MonetaryUnit eaUnit, Account sa, MonetaryUnit saUnit"); sb.append(" where e.id = s.entryId"); sb.append(" and ea.id = e.accountId and sa.id = s.accountId"); sb.append(" and ea.monetaryUnitId = eaUnit.id and sa.monetaryUnitId = saUnit.id"); sb.append(" and s.id = :id"); Query q = getCurrentSession().createQuery(sb.toString()); q.setLong("id", id); q.setResultTransformer(new ResultTransformer() { @Override//from w ww .j a v a2 s . c om public Object transformTuple(Object[] objects, String[] strings) { Split split = (Split) objects[0]; split.setAccount((Account) objects[1]); split.setEntryMonetaryUnit((MonetaryUnit) objects[2]); split.setMonetaryUnit((MonetaryUnit) objects[3]); return split; } @Override public List transformList(List list) { return list; } }); return (Split) q.uniqueResult(); }