Example usage for org.hibernate.criterion DetachedCriteria setFetchMode

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

Introduction

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

Prototype

public DetachedCriteria setFetchMode(String associationPath, FetchMode mode) 

Source Link

Document

Set the fetch mode for a given association

Usage

From source file:sernet.verinice.service.commands.LoadCnAElementByEntityTypeId.java

License:Open Source License

@SuppressWarnings("unchecked")
@Override/*from  w w  w.  ja v a2 s  . co m*/
public void execute() {
    IBaseDao<? extends CnATreeElement, Serializable> dao = getDaoFactory().getDAO(CnATreeElement.class);

    DetachedCriteria crit = DetachedCriteria.forClass(CnATreeElement.class);
    crit.setFetchMode("entity", FetchMode.JOIN);
    crit.setFetchMode("entity.typedPropertyLists", FetchMode.JOIN);
    crit.setFetchMode("entity.typedPropertyLists.properties", FetchMode.JOIN);
    crit.add(Restrictions.eq("objectType", typeId));
    if (scopeId != null) {
        crit.add(Restrictions.eq("scopeId", scopeId));
    }
    if (groupId != null) {
        crit.add(Restrictions.eq("parentId", groupId));
    }
    crit.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);
    list = dao.findByCriteria(crit);
}

From source file:sernet.verinice.service.commands.LoadCnAElementByExternalID.java

License:Open Source License

@Override
public void execute() {
    IBaseDao<CnATreeElement, Serializable> dao = getDaoFactory().getDAO(CnATreeElement.class);
    DetachedCriteria criteria = DetachedCriteria.forClass(CnATreeElement.class);
    criteria.add(Restrictions.eq("sourceId", sourceID));
    criteria.add(Restrictions.eq("extId", id));
    criteria.setFetchMode("children", FetchMode.JOIN);
    if (fetchLinksDown) {
        criteria.setFetchMode("linksDown", FetchMode.JOIN);
        criteria.setFetchMode("linksDown.dependency", FetchMode.JOIN);
    }/*from   w  ww. j a  va 2  s  .  com*/
    if (fetchLinksUp) {
        criteria.setFetchMode("linksUp", FetchMode.JOIN);
        criteria.setFetchMode("linksUp.dependant", FetchMode.JOIN);
    }
    if (parent) {
        criteria.setFetchMode("parent", FetchMode.JOIN);
        criteria.setFetchMode("parent.permissions", FetchMode.JOIN);
    }
    if (properties) {
        criteria.setFetchMode("entity", FetchMode.JOIN);
        criteria.setFetchMode("entity.typedPropertyLists", FetchMode.JOIN);
        criteria.setFetchMode("entity.typedPropertyLists.properties", FetchMode.JOIN);
    }
    criteria.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);
    list = dao.findByCriteria(criteria);
}

From source file:sernet.verinice.service.XmlRightsService.java

License:Open Source License

private void loadUserAndGroupNames(String username) {
    Integer scopeId = getConfigurationService().getScopeId(username);

    String hql = "from CnATreeElement c " + //$NON-NLS-1$           
            "where c.scopeId = ? " + //$NON-NLS-1$
            "and (c.objectType = ? or c.objectType = ?)"; //$NON-NLS-1$
    Object[] params = new Object[] { scopeId, PersonIso.TYPE_ID, Person.TYPE_ID };
    List<CnATreeElement> elementList = getPropertyDao().findByQuery(hql, params);
    Object[] idList = new Object[elementList.size()];
    int i = 0;//from www  .j  ava 2s .co  m
    for (CnATreeElement person : elementList) {
        idList[i] = person.getDbId();
        i++;
    }
    DetachedCriteria crit = DetachedCriteria.forClass(Configuration.class);
    crit.setFetchMode("entity", FetchMode.JOIN); //$NON-NLS-1$
    crit.setFetchMode("entity.typedPropertyLists", FetchMode.JOIN); //$NON-NLS-1$
    crit.setFetchMode("entity.typedPropertyLists.properties", FetchMode.JOIN); //$NON-NLS-1$
    crit.setFetchMode("person", FetchMode.JOIN); //$NON-NLS-1$
    crit.add(Restrictions.in("person.id", idList)); //$NON-NLS-1$
    crit.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);

    List<Configuration> confList = getPropertyDao().findByCriteria(crit);
    Set<String> usernameList = new HashSet<String>(confList.size());
    Set<String> groupnameList = new HashSet<String>(confList.size());
    for (Configuration configuration : confList) {
        if (configuration.getUser() != null && !configuration.getUser().trim().isEmpty()) {
            usernameList.add(configuration.getUser());
        }
        groupnameList.addAll(configuration.getRoles());
    }
    this.usernameMap.put(username, new ArrayList<String>(usernameList));
    this.groupnameMap.put(username, new ArrayList<String>(groupnameList));
}