Example usage for org.hibernate Criteria setFetchMode

List of usage examples for org.hibernate Criteria setFetchMode

Introduction

In this page you can find the example usage for org.hibernate Criteria setFetchMode.

Prototype

public Criteria setFetchMode(String associationPath, FetchMode mode) throws HibernateException;

Source Link

Document

Specify an association fetching strategy for an association or a collection of values.

Usage

From source file:main.java.info.jtrac.hibernate.HibernateJtracDao.java

License:Apache License

public List<AbstractItem> findAllItems() {
    // return getHibernateTemplate().loadAll(AbstractItem.class);
    return (List<AbstractItem>) getHibernateTemplate().execute(new HibernateCallback() {
        public Object doInHibernate(Session session) {
            Criteria criteria = session.createCriteria(AbstractItem.class);
            criteria.setFetchMode("space", FetchMode.JOIN);
            return criteria.list();
        }/*from w  w w  .  j  a  va 2 s .  c o  m*/
    });
}

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

License:Apache License

@SuppressWarnings("unchecked")
public <ES> List<ES> findWithFilter(final List<Criterion> criterions, final Map<String, String> aliases,
        final Projection projection, final List<String> fetchPaths, final Class<ES> projectionClazz,
        final SpecifiedIdsFilter filter, final Paging paging) {
    return getHibernateTemplate().execute(new HibernateCallback<List<ES>>() {
        public List<ES> doInHibernate(Session session) throws HibernateException, SQLException {
            Criteria criteria = createCriteriaForFilter(session, filter);
            if (paging != null) {
                if (paging.getLimit() != null && paging.getLimit() > -1) {
                    criteria.setMaxResults(paging.getLimit());
                }/*from w w  w  .  ja  va2s .c o  m*/
                if (paging.getOffset() != null && paging.getOffset() > -1) {
                    criteria.setFirstResult(paging.getOffset());
                }
                List<SortField> sortFields = paging.getSortFields();
                if (sortFields != null && sortFields.size() > 0) {
                    for (SortField sortField : sortFields) {
                        if (StringUtils.isNotBlank(sortField.getSortColumn())) {
                            SortOrder sortDirection = sortField.getSortDirection();
                            Order order = sortDirection == null || sortDirection == SortOrder.ASC
                                    ? Order.asc(sortField.getSortColumn())
                                    : Order.desc(sortField.getSortColumn());
                            criteria.addOrder(order);
                        }
                    }
                }
            }

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

            if (criterions != null && !criterions.isEmpty()) {
                for (Criterion restrictions : criterions) {
                    criteria.add(restrictions);
                }
            }

            if (projection != null) {
                criteria.setProjection(projection);
            }

            if (projectionClazz != null) {
                ResultTransformer transformer = Transformers.aliasToBean(projectionClazz);
                criteria.setResultTransformer(transformer);
            } else {
                criteria.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);
            }

            if (fetchPaths != null) {
                for (String fetchPath : fetchPaths) {
                    criteria.setFetchMode(fetchPath, FetchMode.JOIN);
                }
            }

            return (List<ES>) criteria.list();
        }
    });
}

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

License:Apache License

public <ES> List<ES> findAllWithFilter(final Integer offset, final Integer limit,
        final List<Criterion> criterions, final Map<String, String> aliases, final SpecifiedIdsFilter filter,
        final Projection projection, final Class<ES> projectionClazz, final List<String> fetchPaths,
        final Order... orders) {
    return getHibernateTemplate().execute(new HibernateCallback<List<ES>>() {
        public List<ES> doInHibernate(Session session) throws HibernateException, SQLException {
            Criteria criteria = createCriteriaForFilter(session, filter);
            if (limit != null && limit > -1) {
                criteria.setMaxResults(limit);
            }/*from w w w  .j  a  v a  2s. co  m*/
            if (offset != null && offset > -1) {
                criteria.setFirstResult(offset);
            }

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

            if (criterions != null && !criterions.isEmpty()) {
                for (Criterion restrictions : criterions) {
                    criteria.add(restrictions);
                }
            }

            if (projection != null) {
                criteria.setProjection(projection);
            }

            if (projectionClazz != null) {
                ResultTransformer transformer = Transformers.aliasToBean(projectionClazz);
                criteria.setResultTransformer(transformer);
            } else {
                criteria.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);
            }

            if (fetchPaths != null) {
                for (String fetchPath : fetchPaths) {
                    criteria.setFetchMode(fetchPath, FetchMode.JOIN);
                }
            }

            if (orders != null) {
                for (Order order : orders) {
                    if (order != null) {
                        criteria.addOrder(order);
                    }
                }
            }

            return (List<ES>) criteria.list();
        }
    });
}

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

License:Apache License

protected Criteria createCriteriaForFilter(Session session, SpecifiedIdsFilter filter) {
    Criteria criteria = session.createCriteria(getClazz());
    criteria.setFetchMode("parent", FetchMode.JOIN);
    if (filter != null) {
        if (filter.getAll() == Boolean.TRUE) {
            if (!filter.getUnnecessaryIds().isEmpty()) {
                criteria.add(Restrictions.not(Restrictions.in("id", filter.getUnnecessaryIds())));
            }//from   w ww .  j a  v  a2s.c o m
        } else {
            if (!filter.getNecessaryIds().isEmpty()) {
                criteria.add(Restrictions.in("id", filter.getNecessaryIds()));
            }
        }
    }
    return criteria;
}

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

License:Apache License

@Override
@SuppressWarnings("unchecked")
@Transactional(readOnly = true)//from ww  w . j  av  a2  s  .  c o m
public List<O> findEntriesByParentId(final TreeEntityModel parent, Integer offset, Integer limit) {
    return getHibernateTemplate().executeFind(new HibernateCallback<List<O>>() {
        @Override
        public List<O> doInHibernate(Session session) throws HibernateException, SQLException {
            Criteria criteria = session.createCriteria(getClazz());
            criteria.setFetchMode("uid", FetchMode.JOIN);
            criteria.add(Restrictions.eq("parent.id", parent.getId()));
            return (List<O>) criteria.list();
        }
    });
}

From source file:net.firejack.platform.core.store.bi.BIReportStore.java

License:Apache License

@Override
@Transactional(readOnly = true)/*from www .j a va  2s. co  m*/
public BIReportModel findByLookup(final String lookup) {
    return getHibernateTemplate().execute(new HibernateCallback<BIReportModel>() {
        public BIReportModel doInHibernate(Session session) throws HibernateException, SQLException {
            Criteria criteria = session.createCriteria(getClazz());
            criteria.add(Restrictions.eq("lookup", lookup));
            criteria.setFetchMode("fields", FetchMode.JOIN);
            return (BIReportModel) criteria.uniqueResult();
        }
    });
}

From source file:net.firejack.platform.core.store.lookup.LookupStore.java

License:Apache License

@Override
@Transactional(readOnly = true)// w  ww  . j a  v a2 s  . com
public E findByLookup(final String lookup, final boolean withParent) {
    return getHibernateTemplate().execute(new HibernateCallback<E>() {
        public E doInHibernate(Session session) throws HibernateException, SQLException {
            Criteria criteria = session.createCriteria(getClazz());
            criteria.add(Restrictions.eq("lookup", lookup));
            if (withParent) {
                criteria.setFetchMode("parent", FetchMode.JOIN);
            }
            return (E) criteria.uniqueResult();
        }
    });
}

From source file:net.firejack.platform.core.store.process.CaseActionStore.java

License:Apache License

/**
 * @param caseId - case ID to search by/* w w w.  ja  v a  2s .  c  o  m*/
 * @return
 * @see ICaseActionStore#findAllByCase(java.lang.Long)
 */
@Override
@Transactional(readOnly = true)
public List<CaseActionModel> findAllByCase(Long caseId) {
    Criteria criteria = getSession().createCriteria(CaseActionModel.class);
    criteria = criteria.createAlias("case", "pc");
    criteria = criteria.createAlias("pc.assignee", "assignee");
    criteria.add(Restrictions.eq("pc.id", caseId));
    criteria.setFetchMode("caseExplanation", FetchMode.JOIN);
    criteria.setFetchMode("caseNote", FetchMode.JOIN);
    criteria.setFetchMode("user", FetchMode.JOIN);
    criteria.addOrder(Order.asc("performedOn"));
    return (List<CaseActionModel>) criteria.list();
}

From source file:net.firejack.platform.core.store.process.CaseNoteStore.java

License:Apache License

@Override
@Transactional(readOnly = true)//from   w  ww .j  ava  2 s  .co m
public List<CaseNoteModel> findByCaseIdAndSearchTerm(final Long caseId, String term) {
    final List<Criterion> criterions = termCriterion(term);
    List<CaseNoteModel> caseNotes = getHibernateTemplate()
            .execute(new HibernateCallback<List<CaseNoteModel>>() {
                @Override
                public List<CaseNoteModel> doInHibernate(Session session)
                        throws HibernateException, SQLException {
                    Criteria criteria = session.createCriteria(CaseNoteModel.class);
                    for (Criterion restrictions : criterions) {
                        criteria.add(restrictions);
                    }

                    criteria.createAlias("processCase", "case");
                    Criterion taskCriterion = Restrictions.eq("case.id", caseId);
                    criteria.add(taskCriterion);

                    criteria.setFetchMode("user", FetchMode.JOIN);

                    return criteria.list();
                }
            });
    return caseNotes;
}

From source file:net.firejack.platform.core.store.process.CaseNoteStore.java

License:Apache License

@Override
@Transactional(readOnly = true)/*from  ww  w.  j ava2s.com*/
public List<CaseNoteModel> findByCaseObjectAndSearchTerm(final Long entityId, final String entityType,
        String term) {
    final List<Criterion> criterions = termCriterion(term);
    List<CaseNoteModel> caseNotes = getHibernateTemplate()
            .execute(new HibernateCallback<List<CaseNoteModel>>() {
                @Override
                public List<CaseNoteModel> doInHibernate(Session session)
                        throws HibernateException, SQLException {
                    Criteria criteria = session.createCriteria(CaseNoteModel.class);
                    for (Criterion restrictions : criterions) {
                        criteria.add(restrictions);
                    }
                    criteria.createAlias("processCase", "case");
                    criteria.createAlias("case.caseObjectModels", "caseObject");
                    Criterion entityIdCriterion = Restrictions.eq("caseObject.entityId", entityId);
                    Criterion entityTypeCriterion = Restrictions.eq("caseObject.entityType", entityType);
                    criteria.add(entityIdCriterion);
                    criteria.add(entityTypeCriterion);

                    criteria.setFetchMode("user", FetchMode.JOIN);

                    return criteria.list();
                }
            });
    return caseNotes;
}