Example usage for org.hibernate.criterion Restrictions in

List of usage examples for org.hibernate.criterion Restrictions in

Introduction

In this page you can find the example usage for org.hibernate.criterion Restrictions in.

Prototype

public static Criterion in(String propertyName, Collection values) 

Source Link

Document

Apply an "in" constraint to the named property.

Usage

From source file:com.hmsinc.epicenter.model.analysis.impl.MaterializedViewAnalysisQueries.java

License:Open Source License

@SuppressWarnings("unchecked")
public org.hibernate.Criteria createGetCasesQuery(AnalysisParameters analysisParameters, Long offset,
        Long numRows) {/*from  ww w.j  ava  2s  .c om*/

    Validate.notNull(offset, "Offset must be set.");
    Validate.notNull(numRows, "Number of returned rows must be set.");
    Validate.notNull(analysisParameters.getDataType(), "Data type must be set.");

    Class<? extends Interaction> interactionClass = null;
    for (ClassificationTarget target : analysisParameters.getDataType().getTargets()) {
        Validate.notNull(target.getInteractionClass(), "Interaction class was null for " + target.toString());
        if (interactionClass == null) {
            interactionClass = target.getInteractionClass();
        } else {
            Validate.isTrue(interactionClass.equals(target.getInteractionClass()),
                    "Inconsistent interaction classes");
        }
    }

    // Query is a subselect of Interaction based on materialized view.
    final Class<? extends Serializable> mv = (analysisParameters.getClassifications() == null
            || analysisParameters.getClassifications().size() == 0 ? AnalysisView.class
                    : ClassifiedAnalysisView.class);

    final QueryBuilder query = new QueryBuilder().addEntity(mv, "analysis").addProperty("distinct(analysis.id)")
            .addProperty("analysis.interactionDate").addOrder("analysis.interactionDate asc");

    applyAttributes(query, analysisParameters);
    applyClassifications(query, analysisParameters);

    // Geography
    applyGeography(query, analysisParameters.getContainer().getClass(), analysisParameters);

    disableNestedLoops(entityManager);

    final Query q = query.toQuery((Session) entityManager.getDelegate(), true);

    q.setFirstResult(offset.intValue());
    q.setMaxResults(numRows.intValue());
    final List<Object[]> items = q.list();
    final List<Long> interactionList = new ArrayList<Long>();
    for (Object[] item : items) {
        interactionList.add((Long) item[0]);
    }
    Criteria ret = null;

    enableNestedLoops(entityManager);

    if (interactionList.size() > 0) {

        // We need to use a ResultTransformer here to avoid duplicate rows.
        ret = criteriaQuery(entityManager, interactionClass).setFetchMode("classifications", FetchMode.JOIN)
                .setFetchMode("patient", FetchMode.JOIN).setFetchMode("patientDetail", FetchMode.JOIN)
                .add(Restrictions.in("id", interactionList))
                .setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY);

    }
    return ret;
}

From source file:com.hmsinc.epicenter.model.geography.impl.GeographyRepositoryImpl.java

License:Open Source License

@SuppressWarnings("unchecked")
public <T extends Geography> List<T> getGeography(final List<String> names, final Class<T> geographyType) {
    Validate.notNull(names);//from   w w  w  .jav a2  s .  c  o m
    return criteriaQuery(entityManager, geographyType).add(Restrictions.in("name", names)).list();

}

From source file:com.hmsinc.epicenter.model.workflow.impl.WorkflowRepositoryImpl.java

License:Open Source License

/**
 * Basic filter for investigations.//from   ww  w  .java 2 s .  c  o m
 * 
 * @param c
 * @param startDate
 * @param endDate
 * @param geometry
 * @param organizations
 * @param showAll
 * @return
 */
private Criteria applyInvestigationCriteria(final Criteria c, DateTime startDate, DateTime endDate,
        Geometry geometry, Collection<Organization> organizations, boolean showAll) {

    if (startDate != null) {
        if (endDate == null) {
            c.add(Restrictions.gt("timestamp", startDate));
        } else {
            c.add(Restrictions.between("timestamp", startDate, endDate));
        }
    }

    if (organizations != null && organizations.size() > 0) {
        c.add(Restrictions.in("organization", organizations));
    }

    if (geometry != null) {
        c.add(Subqueries.exists(getInvestigationGeometryFilter(geometry)));
    }

    if (showAll == false) {
        c.createCriteria("state").add(Restrictions.ne("stateType", WorkflowStateType.TERMINAL));
    }

    return c;
}

From source file:com.hongqiang.shop.modules.cms.service.CategoryService.java

License:Open Source License

@SuppressWarnings("unchecked")
public List<Category> findByUser(boolean isCurrentSite, String module) {

    List<Category> list = (List<Category>) UserUtils.getCache(CACHE_CATEGORY_LIST);
    if (list == null) {
        User user = UserUtils.getUser();
        DetachedCriteria dc = categoryDao.createDetachedCriteria();
        dc.createAlias("office", "office").createAlias("createBy", "user");
        dc.add(dataScopeFilter(user, "office", "user"));
        //         dc.add(Restrictions.or(Restrictions.isNull("href"),Restrictions.eq("href", "")));
        dc.add(Restrictions.eq("delFlag", Category.DEL_FLAG_NORMAL));
        dc.addOrder(Order.asc("site.id")).addOrder(Order.asc("sort"));
        list = categoryDao.find(dc);/*  w w  w  . j  a  va 2  s.c  o  m*/
        // 
        Set<Long> parentIdSet = Sets.newHashSet();
        for (Category e : list) {
            if (e.getParent() != null && e.getParent().getId() != null) {
                boolean isExistParent = false;
                for (Category e2 : list) {
                    if (e.getParent().getId().longValue() == e2.getId().longValue()) {
                        isExistParent = true;
                        break;
                    }
                }
                if (!isExistParent) {
                    parentIdSet.add(e.getParent().getId());
                }
            }
        }
        if (parentIdSet.size() > 0) {
            dc = categoryDao.createDetachedCriteria();
            dc.add(Restrictions.in("id", parentIdSet));
            dc.add(Restrictions.eq("delFlag", Category.DEL_FLAG_NORMAL));
            dc.addOrder(Order.asc("site.id")).addOrder(Order.asc("sort"));
            list.addAll(0, categoryDao.find(dc));
        }
        UserUtils.putCache(CACHE_CATEGORY_LIST, list);
    }

    if (isCurrentSite) {
        List<Category> categoryList = Lists.newArrayList();
        for (Category e : list) {
            if (Category.isRoot(e.getId()) || (e.getSite() != null && e.getSite().getId() != null
                    && e.getSite().getId().longValue() == Site.getCurrentSiteId())) {
                if (StringUtils.isNotEmpty(module)) {
                    if (module.equals(e.getModule()) || "".equals(e.getModule())) {
                        categoryList.add(e);
                    }
                } else {
                    categoryList.add(e);
                }
            }
        }
        return categoryList;
    }
    return list;
}

From source file:com.hypersocket.permissions.PermissionRepositoryImpl.java

License:Open Source License

@Override
@Transactional(readOnly = true)//w  ww  .  j  a v  a2s. c o m
public List<Permission> getAllPermissions(final Set<Long> permissions, final boolean includeSystem) {
    return allEntities(Permission.class, new DetachedCriteriaConfiguration() {
        @Override
        public void configure(DetachedCriteria criteria) {
            if (!includeSystem) {
                criteria.add(
                        Restrictions.and(Restrictions.eq("system", false), Restrictions.in("id", permissions)));
            } else {
                criteria.add(Restrictions.in("id", permissions));
            }
        }
    }, JOIN_ROLES, new HiddenCriteria(false));
}

From source file:com.hypersocket.permissions.PermissionRepositoryImpl.java

License:Open Source License

@SuppressWarnings("unchecked")
@Override/*  ww w  .  ja  va 2s.  c  om*/
@Transactional(readOnly = true)
public Set<Permission> getPrincipalPermissions(Collection<Principal> principals,
        PermissionType... permissionTypes) {

    if (principals == null) {
        return new HashSet<Permission>();
    }

    Criteria crit = createCriteria(Permission.class)
            .setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY);

    List<String> list = new ArrayList<String>();
    for (PermissionType t : permissionTypes) {
        list.add(t.getResourceKey());
    }

    if (list.size() > 0) {
        crit = crit.add(Restrictions.in("resourceKey", list));
    }

    List<Long> ids = new ArrayList<Long>();
    for (Principal p : principals) {
        ids.add(p.getId());
    }

    crit = crit.createCriteria("roles").createCriteria("principals").add(Restrictions.in("id", ids));

    return new HashSet<Permission>(crit.list());

}

From source file:com.hypersocket.permissions.PermissionRepositoryImpl.java

License:Open Source License

@SuppressWarnings("unchecked")
@Override// w w w.j a va2s .c o  m
@Transactional
public Role getPersonalRole(Principal principal) {

    Criteria crit = createCriteria(Role.class).setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY)
            .add(Restrictions.eq("personalRole", true)).createCriteria("principals")
            .add(Restrictions.in("id", Arrays.asList(principal.getId())));

    Set<Role> roles = new HashSet<Role>(crit.list());

    if (roles.isEmpty()) {
        return createPersonalRole(principal);
    } else {
        return roles.iterator().next();
    }
}

From source file:com.hypersocket.permissions.PermissionRepositoryImpl.java

License:Open Source License

@SuppressWarnings("unchecked")
@Override//w w  w  .j  av a 2s  .c o  m
@Transactional(readOnly = true)
public Set<Role> getRolesForPrincipal(List<Principal> principals) {

    if (principals == null) {
        return new HashSet<Role>();
    }

    Criteria crit = createCriteria(Role.class).setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY);

    List<Long> ids = new ArrayList<Long>();
    for (Principal p : principals) {
        ids.add(p.getId());
    }

    crit = crit.createCriteria("principals").add(Restrictions.in("id", ids));

    Set<Role> roles = new HashSet<Role>(crit.list());
    roles.addAll(getAllUserRoles(principals.get(0).getRealm()));
    return roles;
}

From source file:com.hypersocket.repository.AbstractRepositoryImpl.java

License:Open Source License

@SuppressWarnings("unchecked")
@Transactional(readOnly = true)//from   w  w w  . j a va 2 s  .  c  o m
public <T> List<T> search(Class<T> clz, final String searchColumn, final String searchPattern, final int start,
        final int length, final ColumnSort[] sorting, CriteriaConfiguration... configs) {
    Criteria criteria = createCriteria(clz);
    if (!StringUtils.isEmpty(searchPattern)) {
        criteria.add(Restrictions.ilike(searchColumn, searchPattern));
    }

    for (CriteriaConfiguration c : configs) {
        c.configure(criteria);
    }

    for (ColumnSort sort : sorting) {
        criteria.addOrder(sort.getSort() == Sort.ASC ? Order.asc(sort.getColumn().getColumnName())
                : Order.desc(sort.getColumn().getColumnName()));
    }

    criteria.setProjection(Projections.distinct(Projections.id()));

    criteria.setFirstResult(start);
    criteria.setMaxResults(length);

    List<T> ids = (List<T>) criteria.list();

    if (ids.isEmpty()) {
        return new ArrayList<T>();
    }

    criteria = createCriteria(clz);

    criteria.setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY);
    criteria.add(Restrictions.in("id", ids));

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

From source file:com.hypersocket.resource.AbstractAssignableResourceRepositoryImpl.java

License:Open Source License

@SuppressWarnings("unchecked")
@Override//from   ww w .ja  v a2 s  .com
public Collection<T> getAssignedResources(Principal... principals) {

    Criteria criteria = createCriteria(getResourceClass());
    criteria.setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY);

    criteria.add(Restrictions.eq("realm", principals[0].getRealm()));

    criteria = criteria.createCriteria("roles");
    criteria.add(Restrictions.eq("allUsers", true));

    Set<T> everyone = new HashSet<T>(criteria.list());

    Set<Long> ids = new HashSet<Long>();
    for (Principal p : principals) {
        ids.add(p.getId());
    }

    criteria = createCriteria(getResourceClass());

    criteria.setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY);

    criteria.add(Restrictions.eq("realm", principals[0].getRealm()));

    criteria = criteria.createCriteria("roles");
    criteria.add(Restrictions.eq("allUsers", false));
    criteria = criteria.createCriteria("principals");
    criteria.add(Restrictions.in("id", ids));

    everyone.addAll((List<T>) criteria.list());
    return everyone;
}