Example usage for org.hibernate.transform ResultTransformer ResultTransformer

List of usage examples for org.hibernate.transform ResultTransformer ResultTransformer

Introduction

In this page you can find the example usage for org.hibernate.transform ResultTransformer ResultTransformer.

Prototype

ResultTransformer

Source Link

Usage

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();
}