Example usage for org.hibernate.criterion Junction toString

List of usage examples for org.hibernate.criterion Junction toString

Introduction

In this page you can find the example usage for org.hibernate.criterion Junction toString.

Prototype

@Override
    public String toString() 

Source Link

Usage

From source file:com.ihsolution.hqipo.dao.utils.QueryHelper.java

License:Open Source License

/**
 * convert the InputDTO to QueryHelper to get the count (omitting sort order)
 *///from  ww w  .  ja v a2s . com
@SuppressWarnings("deprecation")
public QueryHelper convertDtoToQhelperForCount(InputDTO dto) {
    if (dto == null)
        return this;
    this.dto = dto;
    int ind = 0;
    try {
        Junction j = null;
        Junction conj = Restrictions.conjunction();
        Junction disj = Restrictions.disjunction();
        String operator = "";
        boolean disjB = false, conjB = false;
        if (dto.getFetchMode() != null) {
            for (Map.Entry<String, String> entry : dto.getFetchMode().entrySet()) {
                FetchMode fmode = null;
                logger.debug("FetchMode key=" + entry.getKey() + " val=" + entry.getValue());
                if (entry.getValue().equals("join"))
                    fmode = FetchMode.JOIN;
                else if (entry.getValue().equals("eager"))
                    fmode = FetchMode.EAGER;
                else if (entry.getValue().equals("lazy"))
                    fmode = FetchMode.LAZY;
                else
                    fmode = FetchMode.LAZY;
                this.detCriteria.setFetchMode(entry.getKey(), fmode);
            }
        }
        for (String field : dto.getFields()) {
            operator = dto.getOperators().get(ind);
            if ("or".equals(operator)) {
                j = disj;
                disjB = true;
            } else {
                j = conj;
                conjB = true;
            }
            this.addFieldAndVal(createAliases(field), dto.getValues().get(ind), dto.getOperations().get(ind),
                    j);
            ind++;
        }

        if (dto.getExpressions() != null) {
            for (String expr : dto.getExpressions()) {
                j.add(Expression.sql(expr));
            }
        }
        if (dto.getFieldsToSelect() != null && dto.getFieldsToSelect().length > 0) {
            ProjectionList prList = Projections.projectionList();
            Projection projection = null;

            for (String fld : dto.getFieldsToSelect()) {
                String als = this.createAliases(fld);
                prList.add(Projections.property(als));
            }
            if (dto.isDistinct()) {
                projection = Projections.distinct(prList);
            } else {
                projection = prList;
            }
            this.detCriteria.setProjection(projection);

        } else {
            this.fldSelectedSet = false;
        }

        if (disjB)
            detCriteria.add(disj);
        if (conjB)
            detCriteria.add(conj);
        if (logger.isDebugEnabled()) {
            if (conjB)
                logger.debug("conjuction=" + conj.toString());
            if (disjB)
                logger.debug("disjunction=" + disj.toString());
        }
        if (dto.isDistinct())
            detCriteria.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);
    } catch (Exception e) {
        e.printStackTrace();
        logger.error(e);
    }
    return this;
}

From source file:org.infoglue.calendar.controllers.EntryController.java

License:Open Source License

/**
 * Gets a list of all entrys available sorted by primary key.
 * @return List of Entry//w ww  .jav  a  2s. co m
 * @throws Exception
 */

public Set getEntryList(String userName, List roles, List groups, Long[] eventId, String firstName,
        String lastName, String email, boolean onlyFutureEvents, Map selectedCategoryAttributes,
        boolean andSearch, Session session) throws Exception {
    List result = null;

    Criteria criteria = session.createCriteria(Entry.class);

    Criteria eventCriteria = criteria.createCriteria("event");
    Criteria calendarCriteria = eventCriteria.createCriteria("owningCalendar");

    calendarCriteria.createCriteria("owningRoles").add(Expression.in("name", roles.toArray()));
    if (groups.size() > 0)
        calendarCriteria.createCriteria("owningGroups").add(Expression.in("name", groups.toArray()));

    if (onlyFutureEvents)
        eventCriteria.add(Expression.gt("endDateTime", java.util.Calendar.getInstance()));

    if (selectedCategoryAttributes != null && selectedCategoryAttributes.size() > 0) {
        Criteria eventCategoriesCriteria = eventCriteria.createCriteria("eventCategories");
        Criteria categoryAttributesCriteria = eventCategoriesCriteria
                .createCriteria("eventTypeCategoryAttribute");
        Criteria categoryCriteria = eventCategoriesCriteria.createCriteria("category");

        Junction junction = Restrictions.disjunction();
        if (andSearch)
            junction = Restrictions.conjunction();

        eventCategoriesCriteria.add(junction);

        Iterator selectedCategoryAttributesIterator = selectedCategoryAttributes.keySet().iterator();
        while (selectedCategoryAttributesIterator.hasNext()) {
            String id = (String) selectedCategoryAttributesIterator.next();
            Long[] categories = (Long[]) selectedCategoryAttributes.get(id);
            log.info("id:" + id);
            log.info("categories:" + categories);
            if (categories != null) {
                Criterion e1 = Restrictions.eq("eventTypeCategoryAttribute.id", new Long(id));
                Criterion e2 = Restrictions.in("category.id", categories);
                Criterion criterion = Restrictions.and(e1, e2);

                junction.add(criterion);
            }
        }
        log.info("junction:" + junction.toString());
    }

    //        if(eventId != null)
    //           eventCriteria.add(Restrictions.idEq(eventId));

    if (eventId != null && eventId.length > 0 && eventId[0] != null)
        eventCriteria.add(Restrictions.in("id", eventId));

    if (firstName != null && firstName.length() != 0)
        criteria.add(Restrictions.like("firstName", firstName));
    if (lastName != null && lastName.length() != 0)
        criteria.add(Restrictions.like("lastName", lastName));
    if (email != null && email.length() != 0)
        criteria.add(Restrictions.like("email", email));

    criteria.addOrder(Order.asc("id"));

    Set set = new LinkedHashSet();
    set.addAll(criteria.list());

    return set;
}