Example usage for org.hibernate Criteria createAlias

List of usage examples for org.hibernate Criteria createAlias

Introduction

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

Prototype

@Deprecated
public Criteria createAlias(String associationPath, String alias, int joinType) throws HibernateException;

Source Link

Document

Join an association using the specified join-type, assigning an alias to the joined association.

Usage

From source file:au.org.theark.study.model.dao.StudyDao.java

License:Open Source License

public List<CustomField> getBinaryCustomFieldsForPedigreeRelativesList(Long studyId) {
    List<CustomField> pedigreeCustomFields = null;
    Criteria criteria = getSession().createCriteria(CustomField.class, "cf");
    criteria.createAlias("study", "st", JoinType.INNER_JOIN);
    criteria.createAlias("arkFunction", "af", JoinType.INNER_JOIN);
    criteria.createAlias("customFieldType", "cft", JoinType.LEFT_OUTER_JOIN);
    criteria.createAlias("fieldType", "ft", JoinType.INNER_JOIN);
    criteria.add(Restrictions.eq("st.id", studyId));
    criteria.add(//from  w w  w . ja v  a 2  s.c o  m
            Restrictions.eq("af.name", au.org.theark.core.Constants.FUNCTION_KEY_VALUE_SUBJECT_CUSTOM_FIELD));
    criteria.add(Restrictions.eq("cf.encodedValues", "0=Yes;1=No;").ignoreCase());
    criteria.add(Restrictions.or(Restrictions.isNull("cft.id"),
            Restrictions.eq("cft.name", au.org.theark.core.Constants.SUBJECT)));
    pedigreeCustomFields = criteria.list();

    return pedigreeCustomFields;
}

From source file:au.org.theark.study.model.dao.StudyDao.java

License:Open Source License

@Override
public List<CustomField> getFamilyUIdCustomFieldsForPedigreeRelativesList(Long studyId) {
    List<CustomField> pedigreeCustomFields = null;
    Criteria criteria = getSession().createCriteria(CustomField.class, "cf");
    criteria.createAlias("study", "st", JoinType.INNER_JOIN);
    criteria.createAlias("arkFunction", "af", JoinType.INNER_JOIN);
    criteria.createAlias("fieldType", "ft", JoinType.INNER_JOIN);
    criteria.createAlias("customFieldType", "cft", JoinType.LEFT_OUTER_JOIN);
    criteria.add(Restrictions.eq("st.id", studyId));
    criteria.add(/*from  w  w  w .ja  v a2  s . c  o  m*/
            Restrictions.eq("af.name", au.org.theark.core.Constants.FUNCTION_KEY_VALUE_SUBJECT_CUSTOM_FIELD));
    criteria.add(Restrictions.isNull("cf.encodedValues"));
    criteria.add(Restrictions.eq("ft.name", au.org.theark.core.Constants.FIELD_TYPE_CHARACTER));
    criteria.add(Restrictions.or(Restrictions.isNull("cft.id"),
            Restrictions.eq("cft.name", au.org.theark.core.Constants.SUBJECT)));

    pedigreeCustomFields = criteria.list();

    return pedigreeCustomFields;
}

From source file:au.org.theark.study.model.dao.StudyDao.java

License:Open Source License

public StudyPedigreeConfiguration getStudyPedigreeConfiguration(Long studyId) {

    StudyPedigreeConfiguration pedigreeConfig = null;

    Criteria criteria = getSession().createCriteria(StudyPedigreeConfiguration.class, "spc");
    criteria.createAlias("study", "st", JoinType.INNER_JOIN);
    criteria.setFetchMode("customField", FetchMode.JOIN);

    criteria.add(Restrictions.eq("st.id", studyId));

    List<StudyPedigreeConfiguration> list = criteria.list();
    pedigreeConfig = list.size() == 1 ? list.get(0) : new StudyPedigreeConfiguration();

    return pedigreeConfig;

}

From source file:au.org.theark.study.model.dao.StudyDao.java

License:Open Source License

public List<CustomField> getStudySubjectCustomFieldList(Long studyId) {
    List<CustomField> list = new ArrayList<CustomField>();
    Criteria criteria = getSession().createCriteria(CustomField.class);
    criteria.createAlias("study", "st", JoinType.LEFT_OUTER_JOIN);
    criteria.createAlias("customFieldType", "cft", JoinType.LEFT_OUTER_JOIN);
    criteria.add(Restrictions.eq("st.id", studyId));
    criteria.add(Restrictions.eq("cft.name", au.org.theark.core.Constants.SUBJECT));
    list = criteria.list();/*from   w w  w  .  j  a va  2s .c  o m*/
    return list;
}

From source file:au.org.theark.study.model.dao.StudyDao.java

License:Open Source License

public List<CustomField> getSelectedCalendarCustomFieldList(StudyCalendar studyCalendar) {
    List<CustomField> list = new ArrayList<CustomField>();
    Criteria criteria = getSession().createCriteria(CustomField.class);
    criteria.createAlias("linkCalendarCustomField", "lccf", JoinType.INNER_JOIN);
    criteria.createAlias("linkCalendarCustomField.studyCalendar", "sc", JoinType.INNER_JOIN);
    criteria.add(Restrictions.eq("sc.id", studyCalendar.getId()));
    list = criteria.list();//from  w w w .j  av a2s  .  c  o  m
    return list;
}

From source file:br.com.webbudget.domain.model.repository.financial.MovementRepository.java

License:Open Source License

/**
 *
 * @param filter/*  ww w.  java2s .c om*/
 * @param pageRequest
 * @return
 */
@Override
public Page<Movement> listByFilter(MovementFilter filter, PageRequest pageRequest) {

    final Criteria criteria = this.createCriteria();

    final List<Criterion> criterions = new ArrayList<>();

    criteria.createAlias("contact", "co", JoinType.LEFT_OUTER_JOIN);
    criteria.createAlias("apportionments", "ap");
    criteria.createAlias("ap.movementClass", "mc");
    criteria.createAlias("ap.costCenter", "cc");
    criteria.createAlias("financialPeriod", "fp");

    // montramos os criterios de filtragem geral
    if (filter.hasCriteria()) {
        criterions.add(Restrictions.eq("code", filter.getCriteria()));
        criterions.add(Restrictions.ilike("description", "%" + filter.getCriteria() + "%"));
        criterions.add(Restrictions.ilike("mc.name", "%" + filter.getCriteria() + "%"));
        criterions.add(Restrictions.ilike("cc.name", "%" + filter.getCriteria() + "%"));
        criterions.add(Restrictions.ilike("co.name", "%" + filter.getCriteria() + "%"));

        // se conseguir castar para bigdecimal trata como um filtro
        try {
            criterions.add(Restrictions.eq("value", filter.criteriaToBigDecimal()));
        } catch (ParseException ex) {
        }
    }

    criteria.add(Restrictions.or(criterions.toArray(new Criterion[] {})));
    criteria.add(Restrictions.and(filter.getCustomFilters()));

    // projetamos para pegar o total de paginas possiveis
    criteria.setProjection(Projections.count("id"));

    final Long totalRows = (Long) criteria.uniqueResult();

    // limpamos a projection para que a criteria seja reusada
    criteria.setProjection(null);
    criteria.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);

    // paginamos
    criteria.setFirstResult(pageRequest.getFirstResult());
    criteria.setMaxResults(pageRequest.getPageSize());

    // aplica o multisort dos campos
    if (pageRequest.isMultiSort()) {
        pageRequest.getMultiSortFields().stream().forEach(field -> {
            if (field.getDirection() == SortDirection.ASC) {
                criteria.addOrder(Order.asc(field.getSortField()));
            } else if (field.getDirection() == SortDirection.DESC) {
                criteria.addOrder(Order.desc(field.getSortField()));
            }
        });
    } else if (pageRequest.getSortDirection() == SortDirection.ASC) {
        criteria.addOrder(Order.asc(pageRequest.getSortField()));
    } else if (pageRequest.getSortDirection() == SortDirection.DESC) {
        criteria.addOrder(Order.desc(pageRequest.getSortField()));
    }

    // montamos o resultado paginado
    return new Page<>(criteria.list(), totalRows);
}

From source file:br.gov.jfrj.siga.dp.dao.CpDao.java

License:Open Source License

public List<CpModelo> listarModelosOrdenarPorNome(String script) throws Exception {
    final Criteria crit = getSessao().createCriteria(CpModelo.class);
    crit.add(Property.forName("hisDtFim").isNull());
    crit.createAlias("cpOrgaoUsuario", "o", Criteria.LEFT_JOIN);
    crit.addOrder(Order.desc("o.siglaOrgaoUsu"));
    List<CpModelo> l = new ArrayList<CpModelo>();
    for (CpModelo mod : (List<CpModelo>) crit.list())
        if (script != null && script.trim().length() != 0) {
            if (mod.getConteudoBlobString() != null && mod.getConteudoBlobString().contains(script))
                l.add(mod);//from w w  w .  j a v  a 2  s . c  o  m
        } else
            l.add(mod);
    return l;
}

From source file:com.abiquo.server.core.appslibrary.VirtualMachineTemplateDAO.java

License:Open Source License

/**
 * If (finished) conversions check some compatible. Left join to {@link VirtualImageConversion}
 *//*from ww  w  . ja v a 2 s  . c  o m*/
private Criterion compatibleConversions(final Collection<DiskFormatType> types, final Criteria criteria) {
    criteria.createAlias(VirtualMachineTemplate.CONVERSIONS_PROPERTY, "conversions",
            JoinFragment.LEFT_OUTER_JOIN);

    Criterion finished = Restrictions.eq("conversions." + VirtualImageConversion.STATE_PROPERTY,
            ConversionState.FINISHED);

    Criterion compatible = Restrictions.in("conversions." + VirtualImageConversion.TARGET_TYPE_PROPERTY, types);

    return Restrictions.and(finished, compatible);
}

From source file:com.abssh.util.GenericDao.java

License:Apache License

@SuppressWarnings("unchecked")
public Page<T> findPageDynamicFetch(final Page<T> page, final List<PropertyFilter> filters,
        final String... lazyObjects) {
    Criteria criteria = getSession().createCriteria(entityClass);
    Map<String, Criteria> criteriaMap = new HashMap<String, Criteria>();
    for (PropertyFilter filter : filters) {
        if (!MatchType.INS.equals(filter.getMatchType())) {
            if (!filter.isMultiProperty()) {
                String propertyName = filter.getPropertyName();
                Object[] propertyValue = filter.getPropertyValue();
                MatchType matchType = filter.getMatchType();
                Criteria parent = findParentCriteria(criteria, propertyName, criteriaMap);
                String[] tmp = StringUtils.split(propertyName, DEF_SEPARATOR);
                parent.add(getCriterion(tmp[tmp.length - 1], propertyValue, matchType));
            } else {
                Disjunction disjunction = Restrictions.disjunction();
                Object[] propertyValue = filter.getPropertyValue();
                MatchType matchType = filter.getMatchType();
                String[] propertyNames = filter.getPropertyNames();
                for (String propertyName : propertyNames) {
                    // Criteria parent = findParentCriteria(criteria,
                    // propertyName, criteriaMap);
                    String[] tmp = StringUtils.split(propertyName, DEF_SEPARATOR);
                    // parent.add(getCriterion(tmp[tmp.length - 1],
                    // propertyValue, matchType));
                    for (int i = 0; i <= tmp.length - 2; i++) {
                        criteria.createAlias(tmp[i], tmp[i], CriteriaSpecification.LEFT_JOIN);
                    }//from   w w w . j a va  2s  .c  o  m
                    // disjunction.ad
                }
                criteria.add(Restrictions.or(
                        Restrictions.like(propertyNames[0], propertyValue[0].toString(), MatchMode.ANYWHERE),
                        Restrictions.like(propertyNames[1], propertyValue[0].toString(), MatchMode.ANYWHERE)));

                // criteria.add(disjunction);
            }
        } else {
            criteria.add(org.hibernate.criterion.Expression.sql("this_." + filter.getPropertyName() + " in "
                    + String.valueOf(filter.getPropertyValue()[0])));
        }
    }
    if (lazyObjects != null) {
        for (int i = 0; i < lazyObjects.length; i++) {
            criteria.setFetchMode(lazyObjects[i], FetchMode.EAGER);
        }
    }
    if (page != null && page.isAutoCount()) {
        int totalCount = countCriteriaResult(criteria);
        page.setTotalCount(totalCount);
    }
    if (page != null && page.getPageSize() > 0) {
        if (page.getTotalPages() < page.getPageNo()) {
            page.setPageNo(1L);
        }
        criteria.setFirstResult(page.getFirst() - 1);
        criteria.setMaxResults(page.getPageSize());
    }
    if (page != null && page.isOrderBySetted()) {
        String[] orderByArray = StringUtils.split(page.getOrderBy(), ',');
        String[] orderArray = StringUtils.split(page.getOrder(), ',');

        Assert.isTrue(orderByArray.length == orderArray.length, "orderBy and order is not suited!");

        for (int i = 0; i < orderByArray.length; i++) {
            if (orderByArray[i].indexOf(".") > 0) {
                // ???
                if (Page.ASC.equals(orderArray[i])) {
                    Criteria p = criteriaMap
                            .get(orderByArray[i].substring(0, orderByArray[i].lastIndexOf(".")));
                    if (p == null) {
                        p = findParentCriteria(criteria, orderByArray[i], criteriaMap);// ??
                    }
                    p.addOrder(Order.asc(orderByArray[i].substring(orderByArray[i].lastIndexOf(".") + 1)));
                } else {
                    Criteria p = criteriaMap
                            .get(orderByArray[i].substring(0, orderByArray[i].lastIndexOf(".")));
                    if (p == null) {
                        p = findParentCriteria(criteria, orderByArray[i], criteriaMap);// ??
                    }
                    p.addOrder(Order.desc(orderByArray[i].substring(orderByArray[i].lastIndexOf(".") + 1)));
                }
            } else {
                if (Page.ASC.equals(orderArray[i])) {
                    criteria.addOrder(Order.asc(orderByArray[i]));
                } else {
                    criteria.addOrder(Order.desc(orderByArray[i]));
                }
            }
        }
    }

    List result = criteria.list();
    if (page == null) {
        Page p = new Page<T>();
        p.setResult(result);
        p.setTotalCount(result.size());
        p.setPageNo(1L);
        p.setPageSize(result.size());
        return p;
    }
    page.setResult(result);
    return page;
}

From source file:com.abssh.util.GenericDao.java

License:Apache License

/**
 * [findPageWithOR]  ?/*from   www.j a va 2 s .co  m*/
 * 
 * @new date 2012-04-23
 * @param criteria
 * @param propertyName
 * @param criteriaMap
 */
private void createSubCriteria(Criteria criteria, String propertyName, Map<String, Criteria> criteriaMap) {
    if (propertyName.indexOf(DEF_SEPARATOR) > 0) {
        String parentName = propertyName.substring(0, propertyName.indexOf(DEF_SEPARATOR));
        propertyName = propertyName.substring(propertyName.indexOf(DEF_SEPARATOR) + 1);
        Criteria sub = null;
        if (!criteriaMap.containsKey(parentName)) {
            sub = criteria.createAlias(parentName, parentName, CriteriaSpecification.LEFT_JOIN);
            criteriaMap.put(parentName, sub);
        } else {
            sub = criteriaMap.get(parentName);
        }
        createSubCriteria(sub, propertyName, criteriaMap);
    }
}