Example usage for org.hibernate.criterion Projections distinct

List of usage examples for org.hibernate.criterion Projections distinct

Introduction

In this page you can find the example usage for org.hibernate.criterion Projections distinct.

Prototype

public static Projection distinct(Projection projection) 

Source Link

Document

Create a distinct projection from a projection.

Usage

From source file:org.bpmscript.journal.hibernate.HibernateContinuationJournal.java

License:Apache License

/**
 * Selects all branches for associated with a pid.
 * /* w  w  w .j  ava2s  .c  o  m*/
 * @see org.bpmscript.journal.IContinuationJournal#getBranchesForPid(java.lang.String)
 */
@SuppressWarnings("unchecked")
public Collection<String> getBranchesForPid(final String pid) {
    return getHibernateTemplate().executeFind(new HibernateCallback() {
        public Object doInHibernate(Session session) throws HibernateException, SQLException {
            Criteria criteria = session.createCriteria(HibernateContinuationJournalEntry.class);
            criteria.setProjection(Projections.distinct(Projections.property("branch")));
            criteria.add(Expression.eq("instanceId", pid));
            return criteria.list();
        }
    });
}

From source file:org.broadleafcommerce.core.catalog.dao.ProductOptionDaoImpl.java

License:Apache License

@Override
public List<AssignedProductOptionDTO> findAssignedProductOptionsByProductId(Long productId) {
    Session session = em.unwrap(Session.class);
    Criteria criteria = session.createCriteria(SkuProductOptionValueXrefImpl.class);
    List dtoList = criteria.createAlias("sku", "sku").createAlias("sku.product", "product")
            .createAlias("productOptionValue", "productOptionValue")
            .createAlias("productOptionValue.productOption", "productOption")
            .setProjection(Projections
                    .distinct(Projections.projectionList().add(Projections.property("product.id"), "productId")
                            .add(Projections.property("productOption.attributeName"), "productOptionAttrName")
                            .add(Projections.property("productOptionValue"), "productOptionValue")
                            .add(Projections.property("sku"), "sku")))
            .setResultTransformer(Transformers.aliasToBean(AssignedProductOptionDTO.class))
            .add(Restrictions.eq("product.id", productId)).addOrder(Order.asc("productOption.attributeName"))
            .list();/*from  w  w  w. j av a  2  s. c  om*/
    List<AssignedProductOptionDTO> results = new ArrayList<AssignedProductOptionDTO>();
    for (Object o : dtoList) {
        AssignedProductOptionDTO dto = (AssignedProductOptionDTO) o;
        if (dto.getSku().isActive()) {
            results.add(dto);
        }
    }
    return results;
}

From source file:org.candlepin.model.OwnerCurator.java

License:Open Source License

/**
 * Note that this query looks up only provided products.
 * @param productIds//www .  j  av  a2  s . c  o  m
 * @return a list of owners
 */
public List<Owner> lookupOwnersByActiveProduct(List<String> productIds) {
    // NOTE: only used by superadmin API calls, no permissions filtering needed here.
    DetachedCriteria poolIdQuery = DetachedCriteria.forClass(ProvidedProduct.class, "pp");
    poolIdQuery.add(Restrictions.in("pp.productId", productIds)).setProjection(Property.forName("pp.pool.id"));

    DetachedCriteria ownerIdQuery = DetachedCriteria.forClass(Entitlement.class, "e")
            .add(Subqueries.propertyIn("e.pool.id", poolIdQuery)).createCriteria("pool")
            .add(Restrictions.gt("endDate", new Date())).setProjection(Property.forName("e.owner.id"));

    DetachedCriteria distinctQuery = DetachedCriteria.forClass(Owner.class, "o2")
            .add(Subqueries.propertyIn("o2.id", ownerIdQuery))
            .setProjection(Projections.distinct(Projections.property("o2.key")));

    return currentSession().createCriteria(Owner.class, "o").add(Subqueries.propertyIn("o.key", distinctQuery))
            .list();
}

From source file:org.cast.cwm.service.CwmService.java

License:Open Source License

@Override
@SuppressWarnings("unchecked")
public List<String> getInitializationNames() {
    Criteria criteria = Databinder.getHibernateSession().createCriteria(Initialization.class);
    criteria.setProjection(Projections.distinct(Projections.property("name")));
    return criteria.list();
}

From source file:org.egov.pims.commons.service.PositionService.java

License:Open Source License

/**
 * gives vacant positions for given date range and designation 
 * @param fromDate//from  www.ja  va  2s . c  o m
 * @param toDate
 * @param designationMasterId
 * @return
 */
public Criteria getVacantPositionCriteria(Date fromDate, Date toDate, Integer designationMasterId) {
    DetachedCriteria detachAssignmentPrd = DetachedCriteria.forClass(Assignment.class, "assignment");
    detachAssignmentPrd
            .add(Restrictions.and(Restrictions.le("assignment.fromDate", fromDate),
                    Restrictions.or(Restrictions.ge("assignment.toDate", toDate),
                            Restrictions.isNull("assignment.toDate"))))
            .setProjection(Projections.property("assignment.id"));

    DetachedCriteria detachAssignment = DetachedCriteria.forClass(Assignment.class, "assignment");
    detachAssignment.add(Subqueries.propertyIn("assignment.id", detachAssignmentPrd));
    detachAssignment.add(Restrictions.eq("assignment.isPrimary", 'Y'));
    detachAssignment.setProjection(Projections.distinct(Projections.property("assignment.position.id")));

    Criteria criteria = getCurrentSession().createCriteria(Position.class, "position");
    if (designationMasterId != null && !designationMasterId.equals("0")) {
        criteria.add(Restrictions.eq("position.deptDesig.designation.id", designationMasterId));
    }

    criteria.add(Subqueries.propertyNotIn("position.id", detachAssignment));
    criteria.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);
    criteria.addOrder(Order.asc("position.name"));
    return criteria;
}

From source file:org.egov.services.budget.BudgetDetailService.java

License:Open Source License

public Set<Budget> findBudgetTree(final Budget budget, final BudgetDetail example) {
    if (budget == null)
        return Collections.EMPTY_SET;
    final Criteria budgetDetailCriteria = constructCriteria(example);
    budgetDetailCriteria.createCriteria(Constants.BUDGET);
    final List<Budget> leafBudgets = budgetDetailCriteria
            .setProjection(Projections.distinct(Projections.property(Constants.BUDGET))).list();
    final List<Budget> parents = new ArrayList<Budget>();
    final Set<Budget> budgetTree = new LinkedHashSet<Budget>();
    for (Budget leaf : leafBudgets) {
        parents.clear();//from   w  ww  . ja v a 2  s.  c  o m
        while (leaf != null && leaf.getId() != budget.getId()) {
            parents.add(leaf);
            leaf = leaf.getParent();
        }
        if (leaf != null) {
            parents.add(leaf);
            budgetTree.addAll(parents);
        }
    }
    return budgetTree;
}

From source file:org.egov.services.budget.BudgetDetailService.java

License:Open Source License

public List<BudgetDetail> getDepartmentFromBudgetDetailByFundId(final Integer fundId) {

    final Criteria criteria = getSession().createCriteria(BudgetDetail.class);

    return criteria.add(Restrictions.eq("fund.id", fundId))
            .setProjection(Projections.distinct(Projections.property("executingDepartment")))
            .addOrder(Order.asc("executingDepartment")).list();
}

From source file:org.egov.services.budget.BudgetDetailService.java

License:Open Source License

public List<BudgetDetail> getFunctionFromBudgetDetailByDepartmentId(final Long departmentId) {
    final Criteria criteria = getSession().createCriteria(BudgetDetail.class);
    return criteria.add(Restrictions.eq("executingDepartment.id", departmentId))
            .setProjection(Projections.distinct(Projections.property("function")))
            .addOrder(Order.asc("function")).list();
}

From source file:org.egov.services.budget.BudgetDetailService.java

License:Open Source License

public List<BudgetDetail> getBudgetDetailByFunctionId(final Long functionId) {
    final Criteria criteria = getSession().createCriteria(BudgetDetail.class);
    return criteria.add(Restrictions.eq("function.id", functionId))
            .setProjection(Projections.distinct(Projections.property("budgetGroup")))
            .addOrder(Order.asc("budgetGroup")).list();
}

From source file:org.egov.services.report.ReportService.java

License:Open Source License

public List<Fund> getFunds() {
    final Criteria voucherHeaderCriteria = persistenceService.getSession().createCriteria(CVoucherHeader.class);
    final List fundIdList = voucherHeaderCriteria
            .setProjection(Projections.distinct(Projections.property("fundId.id"))).list();
    if (!fundIdList.isEmpty())
        return persistenceService.getSession().createCriteria(Fund.class).add(Restrictions.in("id", fundIdList))
                .list();//from  w  w w .  j  a  v a  2  s  .  com
    return new ArrayList<Fund>();
}