Example usage for org.hibernate.criterion DetachedCriteria setResultTransformer

List of usage examples for org.hibernate.criterion DetachedCriteria setResultTransformer

Introduction

In this page you can find the example usage for org.hibernate.criterion DetachedCriteria setResultTransformer.

Prototype

public DetachedCriteria setResultTransformer(ResultTransformer resultTransformer) 

Source Link

Document

Set the result transformer to use.

Usage

From source file:com.hypersocket.repository.AbstractRepositoryImpl.java

License:Open Source License

@SuppressWarnings("unchecked")
@Transactional(readOnly = true)/*from  w  ww . ja  va  2  s. c o  m*/
protected <T> List<T> list(String column, Object value, Class<T> cls, boolean caseInsensitive,
        DetachedCriteriaConfiguration... configs) {
    DetachedCriteria criteria = createDetachedCriteria(cls);
    if (caseInsensitive) {
        criteria.add(Restrictions.eq(column, value).ignoreCase());
    } else {
        criteria.add(Restrictions.eq(column, value));
    }
    for (DetachedCriteriaConfiguration c : configs) {
        c.configure(criteria);
    }
    criteria.setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY);
    @SuppressWarnings("rawtypes")
    List results = hibernateTemplate.findByCriteria(criteria);
    return results;
}

From source file:com.hypersocket.repository.AbstractRepositoryImpl.java

License:Open Source License

@SuppressWarnings("unchecked")
@Transactional(readOnly = true)//from  w  w  w  .j a v  a 2s  . c  o  m
protected <T> T get(String column, Object value, Class<T> cls, boolean caseInsensitive,
        DetachedCriteriaConfiguration... configs) {
    DetachedCriteria criteria = createDetachedCriteria(cls);
    criteria.setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY);
    if (caseInsensitive) {
        criteria.add(Restrictions.eq(column, value).ignoreCase());
    } else {
        criteria.add(Restrictions.eq(column, value));
    }
    for (DetachedCriteriaConfiguration c : configs) {
        c.configure(criteria);
    }
    @SuppressWarnings("rawtypes")
    List results = hibernateTemplate.findByCriteria(criteria);
    if (results.isEmpty()) {
        return null;
    } else if (results.size() > 1) {
        if (log.isWarnEnabled()) {
            log.warn("Too many results returned in get request for column=" + column + " value=" + value
                    + " class=" + cls.getName());
        }
    }
    return (T) results.get(0);
}

From source file:com.hypersocket.repository.AbstractRepositoryImpl.java

License:Open Source License

@SuppressWarnings("unchecked")
@Transactional(readOnly = true)// w w w  .j a v a  2s  . c  o  m
protected <T> T get(Class<T> cls, DetachedCriteriaConfiguration... configs) {
    DetachedCriteria criteria = createDetachedCriteria(cls);
    criteria.setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY);

    for (DetachedCriteriaConfiguration c : configs) {
        c.configure(criteria);
    }
    @SuppressWarnings("rawtypes")
    List results = hibernateTemplate.findByCriteria(criteria);
    if (results.isEmpty()) {
        return null;
    } else if (results.size() > 1) {
        throw new IllegalStateException("Too many results returned in get request class=" + cls.getName());
    }
    return (T) results.get(0);
}

From source file:com.hypersocket.repository.AbstractRepositoryImpl.java

License:Open Source License

@SuppressWarnings("unchecked")
@Transactional(readOnly = true)//from  w w  w. jav a2 s. c om
protected <T> List<T> allEntities(Class<T> cls, DetachedCriteriaConfiguration... configs) {
    DetachedCriteria criteria = createDetachedCriteria(cls);

    criteria.setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY);
    criteria.add(Restrictions.eq("deleted", false));
    for (DetachedCriteriaConfiguration c : configs) {
        c.configure(criteria);
    }
    return (List<T>) hibernateTemplate.findByCriteria(criteria);
}

From source file:com.hypersocket.repository.DistinctRootEntity.java

License:Open Source License

@Override
public void configure(DetachedCriteria criteria) {
    criteria.setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY);
}

From source file:com.jgeppert.struts2.jquery.grid.showcase.action.JsonOrdersAction.java

License:Apache License

public String execute() {
    log.debug("Page " + getPage() + " Rows " + getRows() + " Sorting Order " + getSord() + " Index Row :"
            + getSidx());/*w ww.jav a  2  s . c o m*/
    log.debug("Search :" + searchField + " " + searchOper + " " + searchString);

    // Calcalate until rows ware selected
    int to = (rows * page);

    // Calculate the first row to read
    int from = to - rows;

    // Criteria to Build SQL
    DetachedCriteria criteria = DetachedCriteria.forClass(Orders.class);

    if (id != null) {
        criteria.createAlias("customer", "c");
        criteria.add(Restrictions.eq("c.customernumber", id));
    }

    // Handle Search
    if (searchField != null) {
        if (searchField.equals("customernumber")) {
            Integer searchValue = Integer.parseInt(searchString);
            if (searchOper.equals("eq"))
                criteria.add(Restrictions.eq("ordernumber", searchValue));
            else if (searchOper.equals("ne"))
                criteria.add(Restrictions.ne("ordernumber", searchValue));
            else if (searchOper.equals("lt"))
                criteria.add(Restrictions.lt("ordernumber", searchValue));
            else if (searchOper.equals("gt"))
                criteria.add(Restrictions.gt("ordernumber", searchValue));
        } else if (searchField.equals("status") || searchField.equals("comments")) {
            if (searchOper.equals("eq"))
                criteria.add(Restrictions.eq(searchField, searchString));
            else if (searchOper.equals("ne"))
                criteria.add(Restrictions.ne(searchField, searchString));
            else if (searchOper.equals("bw"))
                criteria.add(Restrictions.like(searchField, searchString + "%"));
            else if (searchOper.equals("cn"))
                criteria.add(Restrictions.like(searchField, "%" + searchString + "%"));
        }
        if (searchField.equals("customer")) {
            Integer searchValue = Integer.parseInt(searchString);
            criteria.createAlias("customer", "c");

            if (searchOper.equals("eq"))
                criteria.add(Restrictions.eq("c.customernumber", searchValue));
            else if (searchOper.equals("ne"))
                criteria.add(Restrictions.ne("c.customernumber", searchValue));
            else if (searchOper.equals("lt"))
                criteria.add(Restrictions.lt("c.customernumber", searchValue));
            else if (searchOper.equals("gt"))
                criteria.add(Restrictions.gt("c.customernumber", searchValue));
        }
    }

    // Count Orders
    records = ordersDao.countByCriteria(criteria);

    // Reset count Projection
    criteria.setProjection(null);
    criteria.setResultTransformer(Criteria.ROOT_ENTITY);

    // Handle Order By
    if (sidx != null && !sidx.equals("")) {
        if (!sidx.equals("customer")) {
            if (sord.equals("asc"))
                criteria.addOrder(Order.asc(sidx));
            else
                criteria.addOrder(Order.desc(sidx));
        } else {
            if (sord.equals("asc"))
                criteria.addOrder(Order.asc("customer.customernumber"));
            else
                criteria.addOrder(Order.desc("customer.customernumber"));
        }
    }

    // Get Customers by Criteria
    gridModel = ordersDao.findByCriteria(criteria, from, rows);

    // Set to = max rows
    if (to > records)
        to = records;

    // Calculate total Pages
    total = (int) Math.ceil((double) records / (double) rows);

    return SUCCESS;
}

From source file:com.jgeppert.struts2.jquery.grid.showcase.action.JsonTableAction.java

License:Apache License

public String execute() {
    log.debug("Page " + getPage() + " Rows " + getRows() + " Sorting Order " + getSord() + " Index Row :"
            + getSidx());//from w  w  w  . j  ava 2s.c  o  m
    log.debug("Search :" + searchField + " " + searchOper + " " + searchString);

    // Calcalate until rows ware selected
    int to = (rows * page);

    // Calculate the first row to read
    int from = to - rows;

    // Criteria to Build SQL
    DetachedCriteria criteria = DetachedCriteria.forClass(Customers.class);

    // Handle Search
    if (searchField != null) {
        if (searchField.equals("customernumber")) {
            Integer searchValue = Integer.parseInt(searchString);
            if (searchOper.equals("eq"))
                criteria.add(Restrictions.eq("customernumber", searchValue));
            else if (searchOper.equals("ne"))
                criteria.add(Restrictions.ne("customernumber", searchValue));
            else if (searchOper.equals("lt"))
                criteria.add(Restrictions.lt("customernumber", searchValue));
            else if (searchOper.equals("gt"))
                criteria.add(Restrictions.gt("customernumber", searchValue));
        } else if (searchField.equals("country") || searchField.equals("city")
                || searchField.equals("addressLine1") || searchField.equals("contactfirstname")
                || searchField.equals("contactlastname") || searchField.equals("customername")) {
            if (searchOper.equals("eq"))
                criteria.add(Restrictions.eq(searchField, searchString));
            else if (searchOper.equals("ne"))
                criteria.add(Restrictions.ne(searchField, searchString));
            else if (searchOper.equals("bw"))
                criteria.add(Restrictions.like(searchField, searchString + "%"));
            else if (searchOper.equals("cn"))
                criteria.add(Restrictions.like(searchField, "%" + searchString + "%"));
        } else if (searchField.equals("creditlimit")) {
            Double searchValue = Double.parseDouble(searchString);
            if (searchOper.equals("eq"))
                criteria.add(Restrictions.eq("creditlimit", searchValue));
            else if (searchOper.equals("ne"))
                criteria.add(Restrictions.ne("creditlimit", searchValue));
            else if (searchOper.equals("lt"))
                criteria.add(Restrictions.lt("creditlimit", searchValue));
            else if (searchOper.equals("gt"))
                criteria.add(Restrictions.gt("creditlimit", searchValue));
        }
        if (searchField.equals("employeenumber")) {
            Integer searchValue = Integer.parseInt(searchString);
            criteria.createAlias("salesemployee", "se");

            if (searchOper.equals("eq"))
                criteria.add(Restrictions.eq("se.employeenumber", searchValue));
            else if (searchOper.equals("ne"))
                criteria.add(Restrictions.ne("se.employeenumber", searchValue));
            else if (searchOper.equals("lt"))
                criteria.add(Restrictions.lt("se.employeenumber", searchValue));
            else if (searchOper.equals("gt"))
                criteria.add(Restrictions.gt("se.employeenumber", searchValue));
        }
    }

    // Count Customers
    records = customersDao.countByCriteria(criteria);

    // Reset count Projection
    criteria.setProjection(null);
    criteria.setResultTransformer(Criteria.ROOT_ENTITY);

    // Handle Order By
    if (sidx != null && !sidx.equals("")) {
        if (!sidx.equals("employeenumber")) {
            if (sord.equals("asc"))
                criteria.addOrder(Order.asc(sidx));
            else
                criteria.addOrder(Order.desc(sidx));
        } else {
            if (sord.equals("asc"))
                criteria.addOrder(Order.asc("salesemployee.employeenumber"));
            else
                criteria.addOrder(Order.desc("salesemployee.employeenumber"));
        }
    }

    // Get Customers by Criteria
    gridModel = customersDao.findByCriteria(criteria, from, rows);

    // Set to = max rows
    if (to > records)
        to = records;

    // Calculate total Pages
    total = (int) Math.ceil((double) records / (double) rows);

    return SUCCESS;
}

From source file:com.myapp.core.base.dao.impl.AbstractBaseDao.java

public Criteria findByDetachedCriteria(Class claz, DetachedCriteria dca) throws QueryException {
    dca.setResultTransformer(new MyResultTransFormer(claz));
    return dca.getExecutableCriteria(getCurrentSession());
}

From source file:com.nowgroup.scsee.geo.state.HibernateStateRepository.java

License:MIT License

@SuppressWarnings("unchecked")
@Override//www.java2  s  .  c  o m
public List<GeoState> getStatesByCountryId(int countryId) {
    DetachedCriteria dc = DetachedCriteria.forClass(GeoState.class);
    DetachedCriteria countryCriteria = dc.createCriteria("country");
    countryCriteria.add(Restrictions.eq("id", countryId));
    countryCriteria.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);

    return (List<GeoState>) getHibernateTemplate().findByCriteria(dc);
}

From source file:com.opengamma.masterdb.batch.DbBatchMaster.java

License:Open Source License

@Override
@SuppressWarnings("unchecked")
public Pair<List<RiskRun>, Paging> searchRiskRun(final BatchRunSearchRequest request) {
    s_logger.info("Searching BatchDocuments: ", request);

    final DetachedCriteria criteria = DetachedCriteria.forClass(RiskRun.class);

    if (request.getValuationTime() != null) {
        criteria.add(Restrictions.eq("valuationTime", request.getValuationTime()));
    }/*from   w w  w . ja va2s  .  co  m*/
    if (request.getVersionCorrection() != null) {
        criteria.add(Restrictions.eq("versionCorrection", request.getVersionCorrection()));
    }

    if (request.getMarketDataUid() != null) {
        criteria.createCriteria("marketData")
                .add(Restrictions.eq("baseUidScheme", request.getMarketDataUid().getScheme()))
                .add(Restrictions.eq("baseUidValue", request.getMarketDataUid().getValue()))
                .add(eqOrIsNull("baseUidVersion", request.getMarketDataUid().getVersion()));
        //.addOrder(Order.asc("baseUid"));
    }

    if (request.getViewDefinitionUid() != null) {
        criteria.add(Restrictions.eq("viewDefinitionUidScheme", request.getViewDefinitionUid().getScheme()))
                .add(Restrictions.eq("viewDefinitionUidValue", request.getViewDefinitionUid().getValue()))
                .add(eqOrIsNull("viewDefinitionUidVersion", request.getViewDefinitionUid().getVersion()));
        //.addOrder(Order.asc("viewDefinitionUid"));
    }

    return getTransactionTemplateRetrying(getMaxRetries())
            .execute(new TransactionCallback<Pair<List<RiskRun>, Paging>>() {
                @Override
                public Pair<List<RiskRun>, Paging> doInTransaction(final TransactionStatus status) {
                    //
                    final PagingRequest pagingRequest = request.getPagingRequest();
                    List<RiskRun> results = Collections.emptyList();
                    Paging paging;
                    if (!pagingRequest.equals(PagingRequest.NONE)) {
                        if (pagingRequest.equals(PagingRequest.ALL)) {
                            criteria.addOrder(Order.asc("valuationTime"));
                            results = getHibernateTemplate().findByCriteria(criteria,
                                    pagingRequest.getFirstItem(), pagingRequest.getPagingSize());
                            //
                            paging = Paging.of(pagingRequest, results);
                        } else {
                            criteria.setProjection(Projections.rowCount());
                            final Long totalCount = (Long) getHibernateTemplate().findByCriteria(criteria)
                                    .get(0);
                            paging = Paging.of(pagingRequest, totalCount.intValue());
                            //
                            criteria.setProjection(null);
                            criteria.setResultTransformer(Criteria.ROOT_ENTITY);
                            criteria.addOrder(Order.asc("valuationTime"));
                            results = getHibernateTemplate().findByCriteria(criteria,
                                    pagingRequest.getFirstItem(), pagingRequest.getPagingSize());
                        }
                    } else {
                        paging = Paging.of(PagingRequest.NONE, 0);
                    }
                    return Pair.of(results, paging);
                }
            });
}