Example usage for org.hibernate.criterion CriteriaSpecification INNER_JOIN

List of usage examples for org.hibernate.criterion CriteriaSpecification INNER_JOIN

Introduction

In this page you can find the example usage for org.hibernate.criterion CriteriaSpecification INNER_JOIN.

Prototype

int INNER_JOIN

To view the source code for org.hibernate.criterion CriteriaSpecification INNER_JOIN.

Click Source Link

Document

Specifies joining to an entity based on an inner join.

Usage

From source file:id.co.sambaltomat.core.dao.hibernate.GenericDaoHibernate.java

private void constuctCriteria(SearchCriteria searchCriteria, Criteria criteria, boolean withOrder) {
    if (searchCriteria.getCriterionList() != null) {
        for (Criterion criterion : searchCriteria.getCriterionList()) {
            criteria.add(criterion);/* ww  w .  j a  va2  s .  co  m*/
        }
    }

    if (withOrder && searchCriteria.getOrderList() != null) {
        for (Order order : searchCriteria.getOrderList()) {
            criteria.addOrder(order);
        }
    }

    if (searchCriteria.getSubSearchCriteriaList() != null) {
        for (SearchCriteria subSearchCriteria : searchCriteria.getSubSearchCriteriaList()) {
            Criteria subCriteria = null;
            if (subSearchCriteria.getJoinType() == CriteriaSpecification.INNER_JOIN) {
                subCriteria = criteria.createCriteria(subSearchCriteria.getEntityName());
            } else {
                subCriteria = criteria.createCriteria(subSearchCriteria.getEntityName(),
                        subSearchCriteria.getJoinType());
            }

            constuctCriteria(subSearchCriteria, subCriteria, withOrder);
        }
    }
}

From source file:net.firejack.platform.core.store.AbstractStore.java

License:Apache License

protected Criteria prepareCriteria(Session session, LinkedList<Criterion> criterionList,
        Map<String, String> aliases, Paging paging, boolean isOr, boolean isLeft) {
    Criteria criteria = session.createCriteria(clazz);
    criteria.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);

    if (aliases != null && !aliases.isEmpty()) {
        for (Map.Entry<String, String> alias : aliases.entrySet()) {
            criteria.createAlias(alias.getKey(), alias.getValue(),
                    isLeft ? CriteriaSpecification.LEFT_JOIN : CriteriaSpecification.INNER_JOIN);
        }//from  w  w  w.j a  v  a 2  s.  c o m
    }

    if (criterionList != null) {
        Criterion left = null;
        for (Criterion criterion : criterionList) {
            left = criterionList.getFirst() == criterion ? criterion
                    : isOr ? Restrictions.or(left, criterion) : Restrictions.and(left, criterion);

        }
        if (left != null)
            criteria.add(left);
    }

    if (paging != null) {
        if (paging.getLimit() != null && paging.getLimit() > -1) {
            criteria.setMaxResults(paging.getLimit());
        }
        if (paging.getOffset() != null && paging.getOffset() > -1) {
            criteria.setFirstResult(paging.getOffset());
        }
        if (paging.getSortFields() != null) {
            for (SortField sortField : paging.getSortFields()) {
                if (sortField.getSortDirection().equals(SortOrder.ASC)) {
                    criteria.addOrder(Order.asc(sortField.getSortColumn()));
                } else {
                    criteria.addOrder(Order.desc(sortField.getSortColumn()));
                }
            }
        }
    }
    return criteria;
}

From source file:net.firejack.platform.core.store.AbstractStore.java

License:Apache License

protected Integer searchCount(final LinkedList<Criterion> criterions, final Map<String, String> aliases,
        final boolean isOr, final boolean isLeft) {
    return getHibernateTemplate().execute(new HibernateCallback<Integer>() {
        @Override//from   www.  j  av a2s. c  o m
        public Integer doInHibernate(Session session) throws HibernateException, SQLException {
            Criteria criteria = session.createCriteria(clazz);

            if (aliases != null && !aliases.isEmpty()) {
                for (Map.Entry<String, String> alias : aliases.entrySet()) {
                    criteria.createAlias(alias.getKey(), alias.getValue(),
                            isLeft ? CriteriaSpecification.LEFT_JOIN : CriteriaSpecification.INNER_JOIN);
                }
            }

            if (criterions != null) {
                Criterion left = null;
                for (Criterion criterion : criterions) {
                    left = criterions.getFirst() == criterion ? criterion
                            : isOr ? Restrictions.or(left, criterion) : Restrictions.and(left, criterion);
                }
                if (left != null)
                    criteria.add(left);
            }

            return ((Long) criteria.setProjection(Projections.rowCount()).uniqueResult()).intValue();
        }
    });
}

From source file:to.etc.domui.hibernate.model.CriteriaCreatingVisitor.java

License:Open Source License

/**
 *
 * @param rootAlias      The current alias which starts off this last segment, or "" if we start from root object.
 * @param fullpath      The root object absolute path, i.e. the input up to the current level including the relation property
 * @param relativepath   The relative path from the rootAlias.
 * @param pmm//  ww w  .jav  a2s. co  m
 * @return
 */
private String getPathAlias(String rootAlias, String fullpath, String relativepath, PropertyMetaModel<?> pmm) {
    String alias = m_aliasMap.get(fullpath); // Path is already known?
    if (null != alias)
        return alias;

    //-- This is new... Create the alias and refer it off the previous root alias,
    String nextAlias = nextAlias();
    String aliasedPath = relativepath;
    if (rootAlias.length() > 0)
        aliasedPath = rootAlias + "." + relativepath;

    m_aliasMap.put(fullpath, nextAlias);

    //-- We need to create this join.
    int joinType = pmm.isRequired() ? CriteriaSpecification.INNER_JOIN : CriteriaSpecification.LEFT_JOIN;
    if (m_currentCriteria instanceof Criteria) {
        ((Criteria) m_currentCriteria).createAlias(aliasedPath, nextAlias, joinType); // Crapfest
    } else if (m_currentCriteria instanceof DetachedCriteria) {
        ((DetachedCriteria) m_currentCriteria).createAlias(aliasedPath, nextAlias, joinType);
    } else
        throw new IllegalStateException("Unexpected current thing: " + m_currentCriteria);
    return nextAlias;
}