Example usage for org.hibernate.criterion DetachedCriteria createCriteria

List of usage examples for org.hibernate.criterion DetachedCriteria createCriteria

Introduction

In this page you can find the example usage for org.hibernate.criterion DetachedCriteria createCriteria.

Prototype

public DetachedCriteria createCriteria(String associationPath) 

Source Link

Document

Creates a nested DetachedCriteria representing the association path.

Usage

From source file:gov.nih.nci.ncicb.cadsr.service.impl.UMLBrowserQueryServiceImpl.java

License:BSD License

public List findUmlAttributes(UMLAttributeMetadata umlAttribute, SearchPreferences searchPreferences)
        throws Exception {
    List resultList = null;/*from w  w w  .j a va  2  s.  c  om*/
    List subresultList = null;
    try {
        DetachedCriteria attributeCriteria = DetachedCriteria.forClass(UMLAttributeMetadata.class);
        DetachedCriteria projectCriteria = attributeCriteria.createCriteria("project");
        DetachedCriteria classCriteria = null;
        DetachedCriteria contextCriteria = projectCriteria.createCriteria("classificationScheme")
                .createCriteria("context");

        if (umlAttribute != null) {
            UMLClassMetadata umlClass = umlAttribute.getUMLClassMetadata();
            if (umlAttribute.getName() != null) {
                attributeCriteria.add(Restrictions.ilike("name", umlAttribute.getName()));
            }
            if ((umlClass != null) && (umlClass.getName() != null)) {
                //Fix for GF 15450, When API is fixed this code can be removed to use DetachedCriteria
                String hqlQuery = "";
                hqlQuery = "from gov.nih.nci.cadsr.umlproject.domain.UMLAttributeMetadata att where Lower(att.UMLClassMetadata.name) like Lower('"
                        + umlClass.getName() + "')";
                HQLCriteria attributeHQLCriteria = new HQLCriteria(hqlQuery);
                try {
                    subresultList = getCaCoreAPIService().query(attributeHQLCriteria);
                } catch (Exception e) {
                    log.error(e);
                    throw e;
                }
                return subresultList;
                //End of GF15450 fix
                /* classCriteria = attributeCriteria.createCriteria("UMLClassMetadata");
                 classCriteria.add(Restrictions.ilike("name",umlClass.getName()));*/
            }
            if ((umlClass != null) && (umlClass.getProject() != null)) {
                Project project = umlClass.getProject();
                if (project.getId() != null)
                    projectCriteria.add(Restrictions.eq("id", project.getId()));
                if (project.getVersion() != null)
                    projectCriteria.add(Restrictions.eq("version", project.getVersion()));
            }
            if ((umlClass != null) && (umlClass.getUMLPackageMetadata() != null)) {
                UMLPackageMetadata umlPackage = umlClass.getUMLPackageMetadata();
                if (classCriteria == null) {
                    classCriteria = attributeCriteria.createCriteria("UMLClassMetadata");
                }
                DetachedCriteria packageCriteria = classCriteria.createCriteria("UMLPackageMetadata");
                if (umlPackage.getId() != null)
                    packageCriteria.add(Restrictions.eq("id", umlPackage.getId()));
                if (umlPackage.getSubProject() != null) {
                    DetachedCriteria subProjectCriteria = packageCriteria.createCriteria("subProject");
                    SubProject subProject = umlPackage.getSubProject();
                    if (subProject.getId() != null)
                        subProjectCriteria.add(Restrictions.eq("id", subProject.getId()));
                }
            }
        } //umlAttribute != null

        applyContextSearchPreferences(searchPreferences, contextCriteria);
        resultList = getCaCoreAPIService().query(attributeCriteria);
        //getCaCoreAPIService().query(attributeCriteria, UMLAttributeMetadata.class.getName());

    } catch (Exception e) {
        log.error(e);
        throw e;
    }
    return resultList;

}

From source file:gov.nih.nci.security.authorization.instancelevel.InstanceLevelSecurityHelper.java

License:BSD License

private static void enableSelectedFilter(AuthorizationManager authorizationManager, Configuration configuration,
        String sqlString, String sqlParameterOne, String sqlParameterTwo,
        Hashtable<String, DetachedCriteria> criteriaHolderHash) {
    //search values for all filter attributes, which are set by associated ProtectionElement
    Hashtable<String, String> filterValueHash = new Hashtable<String, String>();
    SessionFactory sf = configuration.buildSessionFactory();
    Session session = sf.openSession();//from ww w  .  j a va  2  s .  com
    Query query = session.createSQLQuery(sqlString);
    query.setParameter(0, sqlParameterOne, Hibernate.STRING);
    query.setParameter(1, sqlParameterTwo, Hibernate.STRING);

    List results = query.list();
    for (Object peObj : results) {
        Object[] resultArray = (Object[]) peObj;
        filterValueHash.put((String) resultArray[0], (String) resultArray[1]);
    }

    //process all FilterClause and generate required DetachedCriteria
    List<FilterClause> filterClauseList = retriveAllCsmFilterClause(authorizationManager);
    for (FilterClause filterClause : filterClauseList) {
        String filterValue = filterValueHash.get(filterClause.getTargetClassName());
        if (filterValue == null || filterValue.length() == 0)
            filterValue = filterValueHash.get(filterClause.getTargetClassAlias());
        if (filterValue == null || filterValue.length() == 0)
            filterValue = filterValueHash.get(filterClause.getClassName());
        if (filterValue == null || filterValue.length() == 0)
            continue; // this filter is not enabled

        DetachedCriteria filterQuery = (DetachedCriteria) criteriaHolderHash.get(filterClause.getClassName());
        if (filterQuery == null)
            try {
                filterQuery = DetachedCriteria.forClass(Class.forName(filterClause.getClassName()));
            } catch (ClassNotFoundException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }

        //if self filter
        //"gov.nih.nci.cacoresdk.domain.manytomany.bidirectional.Employee - self"
        if (filterClause.getFilterChain().contains(filterClause.getClassName()))
            filterQuery.add(Property.forName(filterClause.getTargetClassAttributeName()).eq(filterValue));
        else {
            //filter on referred object
            //"gov.nih.nci.cacoresdk.domain.manytomany.bidirectional.Project - projectCollection"
            //            String referredClassName=filterClause.getFilterChain().substring(0, filterClause.getTargetClassName().indexOf(" "));
            String referenceName = filterClause.getFilterChain();
            filterQuery.createCriteria(referenceName)
                    .add(Property.forName(filterClause.getTargetClassAttributeName()).eq(filterValue));
        }
        criteriaHolderHash.put(filterClause.getClassName(), filterQuery);
    }
}

From source file:gr.abiss.calipso.domain.ItemSearch.java

License:Open Source License

/**
 * Get the item search criteria. This re-uses the count criteria by just adding 
 * the order-by clauses./*from   w ww . ja  v  a2s.  com*/
 */
public DetachedCriteria getCriteria() {
    DetachedCriteria criteria = getCriteriaForCount();
    if (sortFieldName == null) { // can happen only for multi-space search
        sortFieldName = "id"; // effectively is a sort on created date
    }
    if (sortFieldName.equals("id") || sortFieldName.equals("space")) {
        if (showHistory) {
            // if showHistory: sort by item.id and then history.id

            if (space == null) {
                DetachedCriteria parentSpace = parent.createCriteria("space");
                parentSpace.addOrder(Order.desc("name"));
            }
            criteria.addOrder(sortDescending ? Order.desc("parent.id") : Order.asc("parent.id"));
            criteria.addOrder(sortDescending ? Order.desc("id") : Order.asc("id"));

        } else {

            if (space == null) {
                DetachedCriteria parentSpace = criteria.createCriteria("space");
                parentSpace.addOrder(Order.asc("name"));
            }
            criteria.addOrder(sortDescending ? Order.desc("id") : Order.asc("id"));

        }
    } else {
        if (sortDescending) {
            criteria.addOrder(Order.desc(sortFieldName));
        } else {
            criteria.addOrder(Order.asc(sortFieldName));
        }
    }
    return criteria;
}

From source file:gr.abiss.calipso.domain.ItemSearch.java

License:Open Source License

public DetachedCriteria getCriteriaForCount() {
    DetachedCriteria criteria = null;
    // what spaces is this search about?
    Collection<Space> spaces;
    if (space != null) {
        spaces = new ArrayList<Space>();
        spaces.add(space);//  ww w . java  2s.c o m
    } else {
        spaces = getSelectedSpaces();
    }

    if (showHistory) {
        criteria = DetachedCriteria.forClass(History.class);
        // apply restrictions to parent, this is an inner join =============
        parent = criteria.createCriteria("parent");
        // visibility criteria for item
        parent.add(getVisibilityCriteriaForItem(spaces));
        // look for specific IDs?
        if (itemIds != null) {
            parent.add(Restrictions.in("id", itemIds));
        }
    } else {
        criteria = DetachedCriteria.forClass(Item.class);
        // visibility criteria for item
        criteria.add(getVisibilityCriteriaForItem(spaces));
        // look for specific IDs?
        if (itemIds != null) {
            criteria.add(Restrictions.in("id", itemIds));
        }
    }

    for (ColumnHeading ch : columnHeadings) {
        if (ch.isDbField()) {
            ch.addRestrictions(criteria);
        }
    }
    return criteria;
}

From source file:info.jtrac.domain.ItemSearch.java

License:Apache License

public DetachedCriteria getCriteria() {
    DetachedCriteria criteria = getCriteriaForCount();
    if (sortFieldName == null) { // can happen only for multi-space search
        sortFieldName = "id"; // effectively is a sort on created date
    }//from w  w  w.  j  av  a 2 s.  c  o m
    if (sortFieldName.equals("id") || sortFieldName.equals("space")) {
        if (showHistory) {
            // if showHistory: sort by item.id and then history.id
            if (sortDescending) {
                if (space == null) {
                    DetachedCriteria parentSpace = parent.createCriteria("space");
                    parentSpace.addOrder(Order.desc("name"));
                }
                criteria.addOrder(Order.desc("parent.id"));
                criteria.addOrder(Order.desc("id"));
            } else {
                if (space == null) {
                    DetachedCriteria parentSpace = parent.createCriteria("space");
                    parentSpace.addOrder(Order.asc("name"));
                }
                criteria.addOrder(Order.asc("parent.id"));
                criteria.addOrder(Order.asc("id"));
            }
        } else {
            if (sortDescending) {
                if (space == null) {
                    DetachedCriteria parentSpace = criteria.createCriteria("space");
                    parentSpace.addOrder(Order.desc("name"));
                }
                criteria.addOrder(Order.desc("id"));
            } else {
                if (space == null) {
                    DetachedCriteria parentSpace = criteria.createCriteria("space");
                    parentSpace.addOrder(Order.asc("name"));
                }
                criteria.addOrder(Order.asc("id"));
            }
        }
    } else {
        if (sortDescending) {
            criteria.addOrder(Order.desc(sortFieldName));
        } else {
            criteria.addOrder(Order.asc(sortFieldName));
        }
    }
    return criteria;
}

From source file:info.jtrac.domain.ItemSearch.java

License:Apache License

public DetachedCriteria getCriteriaForCount() {
    DetachedCriteria criteria = null;
    if (showHistory) {
        criteria = DetachedCriteria.forClass(History.class);
        // apply restrictions to parent, this is an inner join =============
        parent = criteria.createCriteria("parent");
        if (space == null) {
            parent.add(Restrictions.in("space", getSelectedSpaces()));
        } else {//from   ww w .  j  a  va  2 s.  com
            parent.add(Restrictions.eq("space", space));
        }
        if (itemIds != null) {
            parent.add(Restrictions.in("id", itemIds));
        }
    } else {
        criteria = DetachedCriteria.forClass(Item.class);
        if (space == null) {
            criteria.add(Restrictions.in("space", getSelectedSpaces()));
        } else {
            criteria.add(Restrictions.eq("space", space));
        }
        if (itemIds != null) {
            criteria.add(Restrictions.in("id", itemIds));
        }
    }
    for (ColumnHeading ch : columnHeadings) {
        ch.addRestrictions(criteria);
    }
    return criteria;
}

From source file:info.jtrac.repository.HibernateJtracDao.java

License:Apache License

public SearchCriteria getCriteriaForCount(ItemSearch itemSearch) {
    Collection<Long> itemIds = itemSearch.getItemIds();
    Space space = itemSearch.getSpace();

    DetachedCriteria criteria = DetachedCriteria
            .forClass(itemSearch.isShowHistory() ? History.class : Item.class);
    DetachedCriteria parentCriteria = itemSearch.isShowHistory() ? criteria.createCriteria("parent") : null;
    DetachedCriteria criteriaToChange = parentCriteria == null ? criteria : parentCriteria;

    if (space == null) {
        criteriaToChange.add(Restrictions.in("space", itemSearch.getSelectedSpaces()));
    } else {/*from   w ww . j  a  v  a 2  s . co m*/
        criteriaToChange.add(Restrictions.eq("space", space));
    }
    if (itemIds != null) {
        criteriaToChange.add(Restrictions.in("id", itemIds));
    }
    for (ColumnHeading columnHeading : itemSearch.getColumnHeadings()) {
        addRestrictions(columnHeading, criteria);
    }
    return new SearchCriteria(criteria, parentCriteria);
}

From source file:info.jtrac.repository.HibernateJtracDao.java

License:Apache License

private DetachedCriteria getCriteria(ItemSearch itemSearch) {
    SearchCriteria searchCriteria = getCriteriaForCount(itemSearch);
    DetachedCriteria criteria = searchCriteria.criteria;
    DetachedCriteria parent = searchCriteria.parentCriteria;
    if (itemSearch.getSortFieldName() == null) { // can happen only for multi-space search
        itemSearch.setSortFieldName("id"); // effectively is a sort on created date
    }//from  w  w  w  . j a v  a2  s  . com
    String sortFieldName = itemSearch.getSortFieldName();
    Space space = itemSearch.getSpace();
    if (sortFieldName.equals("id") || sortFieldName.equals("space")) {
        if (itemSearch.isShowHistory()) {
            // if showHistory: sort by item.id and then history.id
            if (itemSearch.isSortDescending()) {
                if (space == null) {
                    DetachedCriteria parentSpace = parent.createCriteria("space");
                    parentSpace.addOrder(Order.desc("name"));
                }
                criteria.addOrder(Order.desc("parent.id"));
                criteria.addOrder(Order.desc("id"));
            } else {
                if (space == null) {
                    DetachedCriteria parentSpace = parent.createCriteria("space");
                    parentSpace.addOrder(Order.asc("name"));
                }
                criteria.addOrder(Order.asc("parent.id"));
                criteria.addOrder(Order.asc("id"));
            }
        } else {
            if (itemSearch.isSortDescending()) {
                if (space == null) {
                    DetachedCriteria parentSpace = criteria.createCriteria("space");
                    parentSpace.addOrder(Order.desc("name"));
                }
                criteria.addOrder(Order.desc("id"));
            } else {
                if (space == null) {
                    DetachedCriteria parentSpace = criteria.createCriteria("space");
                    parentSpace.addOrder(Order.asc("name"));
                }
                criteria.addOrder(Order.asc("id"));
            }
        }
    } else {
        if (itemSearch.isSortDescending()) {
            criteria.addOrder(Order.desc(sortFieldName));
        } else {
            criteria.addOrder(Order.asc(sortFieldName));
        }
    }
    return criteria;
}

From source file:it.jugpadova.blo.EventBo.java

License:Apache License

public List<Event> search(EventSearch eventSearch) {
    List<Event> events = new LinkedList<Event>();
    try {//from  w w w .j a v  a  2s .  c  o m
        DetachedCriteria eventCriteria = DetachedCriteria.forClass(Event.class);
        if (StringUtils.isNotBlank(eventSearch.getJugName())
                || StringUtils.isNotBlank(eventSearch.getFriendlyName())
                || StringUtils.isNotBlank(eventSearch.getCountry())
                || StringUtils.isNotBlank(eventSearch.getContinent())) {
            DetachedCriteria ownerCriteria = eventCriteria.createCriteria("owner.jug");
            if (StringUtils.isNotBlank(eventSearch.getJugName())) {
                ownerCriteria.add(Restrictions.ilike("name", eventSearch.getJugName(), MatchMode.ANYWHERE));
            }
            if (StringUtils.isNotBlank(eventSearch.getFriendlyName())) {
                ownerCriteria.add(Restrictions.or(Restrictions.eq("name", eventSearch.getFriendlyName()),
                        Restrictions.eq("internalFriendlyName", eventSearch.getFriendlyName())));
            }
            if (StringUtils.isNotBlank(eventSearch.getCountry())
                    || StringUtils.isNotBlank(eventSearch.getContinent())) {
                DetachedCriteria countryCriteria = ownerCriteria.createCriteria("country");
                if (StringUtils.isNotBlank(eventSearch.getCountry())) {
                    countryCriteria.add(Restrictions.or(
                            Restrictions.ilike("englishName", eventSearch.getCountry(), MatchMode.ANYWHERE),
                            Restrictions.ilike("localName", eventSearch.getCountry(), MatchMode.ANYWHERE)));
                }
                if (StringUtils.isNotBlank(eventSearch.getContinent())) {
                    DetachedCriteria continentCriteria = countryCriteria.createCriteria("continent");
                    continentCriteria
                            .add(Restrictions.ilike("name", eventSearch.getContinent(), MatchMode.ANYWHERE));
                }
            }
        }
        if (!eventSearch.isPastEvents()) {
            eventCriteria.add(Restrictions.ge("startDate", new Date()));
        }
        if (eventSearch.getStartDate() != null) {
            eventCriteria.add(Restrictions.ge("startDate", eventSearch.getStartDate()));
        }
        if (eventSearch.getEndDate() != null) {
            eventCriteria.add(Restrictions.le("endDate", eventSearch.getEndDate()));
        }
        if ("desc".equals(eventSearch.getOrderByDate())) {
            eventCriteria.addOrder(Order.desc("startDate"));
            eventCriteria.addOrder(Order.desc("creationDate"));
        } else {
            eventCriteria.addOrder(Order.asc("startDate"));
            eventCriteria.addOrder(Order.asc("creationDate"));
        }
        if (eventSearch.getMaxResults() == null) {
            events = eventDao.searchByCriteria(eventCriteria);
        } else {
            events = eventDao.searchByCriteria(eventCriteria, 0, eventSearch.getMaxResults().intValue());
        }
        for (Event event : events) {
            event.getParticipants().size();
        }
    } catch (Exception e) {
        logger.error("Error searching events", e);
    }

    return events;
}

From source file:it.jugpadova.blo.JuggerBo.java

License:Apache License

public List<Jugger> searchJugger(JuggerSearch juggerSearch) {
    List<Jugger> juggers = new LinkedList<Jugger>();
    try {//w w w . ja  v  a2s . c o  m
        DetachedCriteria searchCriteria = DetachedCriteria.forClass(Jugger.class);
        if (StringUtils.isNotBlank(juggerSearch.getJUGName())) {
            DetachedCriteria jugCriteria = searchCriteria.createCriteria("jug");
            jugCriteria.add(Restrictions.like("name", juggerSearch.getJUGName(), MatchMode.ANYWHERE));
        }
        if (StringUtils.isNotBlank(juggerSearch.getUsername())) {
            DetachedCriteria usernameCriteria = searchCriteria.createCriteria("user");
            usernameCriteria.add(Restrictions.like("username", juggerSearch.getUsername(), MatchMode.ANYWHERE));
        }
        if (juggerSearch.getRRStatus() != JuggerSearch.INVALID_STATUS) {
            DetachedCriteria statusCriteria = searchCriteria.createCriteria("reliabilityRequest");
            statusCriteria.add(Restrictions.eq("status", juggerSearch.getRRStatus()));
        }

        juggers = juggerDao.searchByCriteria(searchCriteria);
    } catch (Exception e) {
        logger.error("Error searching events", e);
    }

    return juggers;
}