List of usage examples for org.hibernate.criterion Restrictions in
public static Criterion in(String propertyName, Collection values)
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; }