List of usage examples for org.hibernate.criterion Restrictions in
public static Criterion in(String propertyName, Collection values)
From source file:com.enonic.cms.store.dao.FindContentByKeysQuerier.java
License:Open Source License
private boolean eagerFetchingIsSafe(final Collection<ContentKey> contentKeys) { final Number number = (Number) hibernateSession.createCriteria(SectionContentEntity.class) .add(Restrictions.in("content.key", contentKeys)).setProjection(Projections.rowCount()) .uniqueResult();//w w w.j a va 2 s .c om return number.intValue() <= (EAGER_FETCH_NUMBER_OF_SECTIONS_THRESHOLD * contentKeys.size()); }
From source file:com.enonic.cms.store.dao.GroupEntityDao.java
License:Open Source License
public GroupEntity findGlobalGroupByName(final String name, final boolean includeDeleted) { return executeSingleResult(GroupEntity.class, new HibernateCallback() { public Object doInHibernate(Session session) throws HibernateException, SQLException { Criteria crit = session.createCriteria(GroupEntity.class).setCacheable(true); crit.add(Restrictions.eq("name", name)); crit.add(Restrictions.in("type", GroupType.getIntegerValues(GLOBAL_GROUP_TYPES))); if (!includeDeleted) { crit.add(Restrictions.eq("deleted", 0)); }/*from w w w. ja v a2 s .com*/ List list = crit.list(); if (list.size() == 0) { return null; } // we return first one if found return list.get(0); } }); }
From source file:com.enonic.cms.store.dao.GroupEntityDao.java
License:Open Source License
@SuppressWarnings({ "unchecked" }) public List<GroupEntity> findByQuery(final GroupQuery spec) { return (List<GroupEntity>) getHibernateTemplate().execute(new HibernateCallback() { public Object doInHibernate(Session session) throws HibernateException, SQLException { Criteria crit = session.createCriteria(GroupEntity.class).setCacheable(true); if (spec.getUserStoreKey() != null) { crit.add(Restrictions.eq("userStore.key", spec.getUserStoreKey().toInt())); } else if (spec.isGlobalOnly()) { crit.add(Restrictions.isNull("userStore.key")); }//from w w w . j a v a 2 s . c o m if (!spec.isIncludeDeleted()) { crit.add(Restrictions.eq("deleted", 0)); } if (spec.getQuery() != null && spec.getQuery().length() > 0) { crit.add(Restrictions.ilike("name", spec.getQuery(), MatchMode.ANYWHERE)); } if (spec.getOrderBy() != null && !spec.getOrderBy().equals("")) { if (spec.isOrderAscending()) { crit.addOrder(Order.asc(spec.getOrderBy()).ignoreCase()); } else { crit.addOrder(Order.desc(spec.getOrderBy()).ignoreCase()); } } if (spec.getGroupTypes() != null) { Collection<GroupType> gt = new ArrayList<GroupType>(spec.getGroupTypes()); if (spec.isIncludeBuiltInGroups()) { if (!spec.isIncludeAnonymousGroups()) { gt.remove(GroupType.ANONYMOUS); } } else { gt.removeAll(GroupType.getBuiltInTypes()); } if (spec.isIncludeUserGroups()) { gt.add(GroupType.USER); } crit.add(Restrictions.in("type", GroupType.getIntegerValues(gt))); } else { Collection<GroupType> notGroupType = new ArrayList<GroupType>(); if (!spec.isIncludeBuiltInGroups()) { notGroupType.addAll(GroupType.getBuiltInTypes()); if (spec.isIncludeAnonymousGroups()) { notGroupType.remove(GroupType.ANONYMOUS); } } if (!spec.isIncludeUserGroups()) { notGroupType.add(GroupType.USER); } if (!spec.isIncludeAnonymousGroups() && !notGroupType.contains(GroupType.ANONYMOUS)) { notGroupType.add(GroupType.ANONYMOUS); } crit.add(Restrictions.not(Restrictions.in("type", GroupType.getIntegerValues(notGroupType)))); } crit.setFirstResult(spec.getIndex()); List list = crit.list(); if (spec.getCount() == null) { return list; } else { return list.subList(0, Math.min(spec.getCount(), list.size())); } } }); }
From source file:com.ephesoft.dcma.da.dao.hibernate.BatchClassDaoImpl.java
License:Open Source License
/** * API to get the list of Batch Classes specifying startindex, no of results and sorting if any. * //from w w w. ja v a 2 s.c o m * @param firstResult int * @param maxResults int * @param order List<Order> * @param userRoles Set<String> * @return List of batch class. */ @Override public List<BatchClass> getBatchClassList(final int firstResult, final int maxResults, final List<Order> order, final Set<String> userRoles) { EphesoftCriteria criteria = criteria(); List<BatchClass> batchClassList = null; if (userRoles == null) { batchClassList = new ArrayList<BatchClass>(0); } else { List<String> roleList = new ArrayList<String>(); for (String userRole : userRoles) { if (null == userRole || userRole.isEmpty()) { continue; } roleList.add(userRole); } DetachedCriteria detachedCriteria = criteria(); detachedCriteria.createAlias(ASSIGNED_GROUPS, ASSIGNED_GROUPS); detachedCriteria.add(Restrictions.in(ASSIGNED_GROUPS_NAME, roleList)); detachedCriteria.setProjection(Projections.distinct(Projections.property(BATCH_ID))); criteria.add(Subqueries.propertyIn(BATCH_ID, detachedCriteria)); criteria.add(Restrictions.or(Restrictions.isNull(IS_DELETED), Restrictions.eq(IS_DELETED, false))); batchClassList = find(criteria, firstResult, maxResults, order.toArray(new Order[order.size()])); } return batchClassList; }
From source file:com.ephesoft.dcma.da.dao.hibernate.BatchClassDaoImpl.java
License:Open Source License
/** * This API will fetch all the batch classes of current user role. * //from w w w . jav a 2s . c om * @param userRoles Set<String> * @return List<BatchClass> */ @Override public List<BatchClass> getAllBatchClassesByUserRoles(final Set<String> userRoles) { DetachedCriteria criteria = criteria(); List<BatchClass> batchClassList = null; if (userRoles == null) { batchClassList = new ArrayList<BatchClass>(); } else { List<String> roleList = new ArrayList<String>(); for (String userRole : userRoles) { if (null == userRole || userRole.isEmpty()) { continue; } roleList.add(userRole); } criteria.createAlias(ASSIGNED_GROUPS, ASSIGNED_GROUPS); criteria.add(Restrictions.in(ASSIGNED_GROUPS_NAME, roleList)); criteria.add(Restrictions.or(Restrictions.isNull(IS_DELETED), Restrictions.eq(IS_DELETED, false))); criteria.addOrder(org.hibernate.criterion.Order.asc(BATCH_ID)); criteria.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY); batchClassList = find(criteria); } return batchClassList; }
From source file:com.ephesoft.dcma.da.dao.hibernate.BatchClassDaoImpl.java
License:Open Source License
/** * This API will fetch the size of batchclass. * //from w w w . j a va 2s .c om * @param userRoles Set<String> * @return batchClass size */ @Override public int getAllBatchClassCountExcludeDeleted(Set<String> userRoles) { DetachedCriteria criteria = criteria(); if (userRoles != null && !userRoles.isEmpty()) { List<String> roleList = new ArrayList<String>(); for (String userRole : userRoles) { if (null == userRole || userRole.isEmpty()) { continue; } roleList.add(userRole); } criteria.createAlias(ASSIGNED_GROUPS, ASSIGNED_GROUPS); criteria.add(Restrictions.in(ASSIGNED_GROUPS_NAME, roleList)); } criteria.add(Restrictions.or(Restrictions.isNull(IS_DELETED), Restrictions.eq(IS_DELETED, false))); return count(criteria); }
From source file:com.ephesoft.dcma.da.dao.hibernate.BatchClassDaoImpl.java
License:Open Source License
/** * API to the batch class with respect to the given batch class id and the roles provided. * /*from w ww . j ava 2 s. c o m*/ * @param userRoles {@link Set<{@link String}>} * @param batchClassID {@link String} * @return {@link BatchClass} */ @Override public BatchClass getBatchClassByUserRoles(final Set<String> userRoles, String batchClassID) { DetachedCriteria criteria = criteria(); List<BatchClass> batchClassList = null; BatchClass batchClass = null; if (userRoles == null) { batchClassList = new ArrayList<BatchClass>(); } else { List<String> roleList = new ArrayList<String>(); for (String userRole : userRoles) { if (null == userRole || userRole.isEmpty()) { continue; } roleList.add(userRole); } criteria.createAlias(ASSIGNED_GROUPS, ASSIGNED_GROUPS); criteria.add(Restrictions.in(ASSIGNED_GROUPS_NAME, roleList)); criteria.add(Restrictions.eq(IDENTIFIER, batchClassID)); criteria.add(Restrictions.or(Restrictions.isNull(IS_DELETED), Restrictions.eq(IS_DELETED, false))); criteria.addOrder(org.hibernate.criterion.Order.asc(BATCH_ID)); criteria.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY); batchClassList = find(criteria); if (batchClassList != null && !batchClassList.isEmpty()) { batchClass = batchClassList.get(0); } } return batchClass; }
From source file:com.ephesoft.dcma.da.dao.hibernate.BatchInstanceDaoImpl.java
License:Open Source License
/** * An API to fetch all batch instance by batch name or id. * //from w ww.ja v a 2s . c o m * @param searchString String * @param userRoles Set<String> * @return List<BatchInstance> */ @Override public List<BatchInstance> getBatchInstancesByBatchNameOrId(String searchString, Set<String> userRoles) { DetachedCriteria criteria = criteria(); List<BatchInstance> batchInstances = new ArrayList<BatchInstance>(); Set<String> batchClassIdentifiers = batchClassGroupsDao.getBatchClassIdentifierForUserRoles(userRoles); String searchStringLocal = searchString.replaceAll(DataAccessConstant.PERCENTAGE, REPLACEMENT_STRING); Criterion nameLikeCriteria = Restrictions.like(BATCH_NAME, DataAccessConstant.PERCENTAGE + searchStringLocal + DataAccessConstant.PERCENTAGE); Criterion idLikeCriteria = Restrictions.like(BATCH_INSTANCE_IDENTIFIER, DataAccessConstant.PERCENTAGE + searchStringLocal + DataAccessConstant.PERCENTAGE); LogicalExpression searchCriteria = Restrictions.or(nameLikeCriteria, idLikeCriteria); criteria.add(searchCriteria); if (batchClassIdentifiers != null && batchClassIdentifiers.size() > 0) { criteria.createAlias(BATCH_CLASS, BATCH_CLASS); criteria.add(Restrictions.in(BATCH_CLASS_IDENTIFIER, batchClassIdentifiers)); batchInstances = find(criteria); } return batchInstances; }
From source file:com.ephesoft.dcma.da.dao.hibernate.BatchInstanceDaoImpl.java
License:Open Source License
/** * An API to fetch count of the batch instance table for batch instance status and batch priority. API will return those batch * instance having access by the user roles on the basis of ephesoft user. * /*from www . ja v a2 s . co m*/ * @param batchName {@link String} * @param batchInstanceStatus {@link BatchInstanceStatus} * @param userName {@link String} * @param priority {@link BatchPriority} * @param userRoles Set<{@link String}> * @param ephesoftUser {@link EphesoftUser} * @return int, count of the batch instance present for the batch instance status. */ @Override public int getCount(String batchName, BatchInstanceStatus batchInstanceStatus, String userName, BatchPriority batchPriority, Set<String> userRoles, EphesoftUser ephesoftUser) { int count = 0; DetachedCriteria criteria = criteria(); if (batchName != null && !batchName.isEmpty()) { String batchNameLocal = batchName.replaceAll(DataAccessConstant.PERCENTAGE, REPLACEMENT_STRING); Criterion nameLikeCriteria = Restrictions.like(BATCH_NAME, DataAccessConstant.PERCENTAGE + batchNameLocal + DataAccessConstant.PERCENTAGE); Criterion idLikeCriteria = Restrictions.like(BATCH_INSTANCE_IDENTIFIER, DataAccessConstant.PERCENTAGE + batchNameLocal + DataAccessConstant.PERCENTAGE); LogicalExpression searchCriteria = Restrictions.or(nameLikeCriteria, idLikeCriteria); criteria.add(searchCriteria); } else if (null != batchPriority) { Disjunction disjunction = Restrictions.disjunction(); Integer lowValue = batchPriority.getLowerLimit(); Integer upperValue = batchPriority.getUpperLimit(); disjunction.add(Restrictions.between(PRIORITY, lowValue, upperValue)); criteria.add(disjunction); } Set<String> batchClassIdentifiers = batchClassGroupsDao.getBatchClassIdentifierForUserRoles(userRoles); if (EphesoftUser.NORMAL_USER.equals(ephesoftUser)) { Set<String> batchInstanceIdentifiers = batchInstanceGroupsDao .getBatchInstanceIdentifierForUserRoles(userRoles); if ((null != batchClassIdentifiers && batchClassIdentifiers.size() > 0) || (null != batchInstanceIdentifiers && batchInstanceIdentifiers.size() > 0)) { criteria.add(Restrictions.eq(STATUS, batchInstanceStatus)); criteria.add(Restrictions.eq(IS_REMOTE, false)); criteria.add(Restrictions.or(Restrictions.isNull(CURRENT_USER), Restrictions.eq(CURRENT_USER, userName))); final Disjunction disjunction = Restrictions.disjunction(); if (null != batchClassIdentifiers && batchClassIdentifiers.size() > 0) { criteria.createAlias(BATCH_CLASS, BATCH_CLASS); disjunction.add(Restrictions.in(BATCH_CLASS_IDENTIFIER, batchClassIdentifiers)); } if (null != batchInstanceIdentifiers && batchInstanceIdentifiers.size() > 0) { disjunction.add(Restrictions.in(BATCH_INSTANCE_IDENTIFIER, batchInstanceIdentifiers)); } criteria.add(disjunction); count = count(criteria); } else { if (null != batchClassIdentifiers && batchClassIdentifiers.size() > 0) { criteria.add(Restrictions.eq(STATUS, batchInstanceStatus)); criteria.add(Restrictions.eq(IS_REMOTE, false)); criteria.add(Restrictions.or(Restrictions.isNull(CURRENT_USER), Restrictions.eq(CURRENT_USER, userName))); criteria.createAlias(BATCH_CLASS, BATCH_CLASS); criteria.add(Restrictions.in(BATCH_CLASS_IDENTIFIER, batchClassIdentifiers)); count = count(criteria); } } } return count; }
From source file:com.ephesoft.dcma.da.dao.hibernate.BatchInstanceDaoImpl.java
License:Open Source License
/** * An API to fetch all the batch instances excluding remotely executing batches by status list. Parameter firstResult set a limit * upon the number of objects to be retrieved. Parameter maxResults set the first result to be retrieved. Parameter orderList set * the sort property and order of that property. If orderList parameter is null or empty then this parameter is avoided. This will * return only those batch instance which having access by the user roles on the basis of the ephesoft user. * /* w w w . java2 s .c o m*/ * @param searchString {@link String} * @param statusList List<{@link BatchInstanceStatus}> status list of batch instance status. * @param firstResult the first result to retrieve, numbered from <tt>0</tt> * @param maxResults maxResults the maximum number of results * @param orderList List<{@link Order}> orderList set the sort property and order of that property. If orderList parameter is null * or empty then this parameter is avoided. * @param filterClauseList List<{@link BatchInstanceFilter}> this will add the where clause to the criteria query based on the * property name and value. If filterClauseList parameter is null or empty then this parameter is avoided. * @param batchPriorities List<{@link BatchPriority}> this will add the where clause to the criteria query based on the priority * list selected. If batchPriorities parameter is null or empty then this parameter is avoided. * @param userName {@link String} * @param userRoles Set<{@link String}> * @param ephesoftUser {@link EphesoftUser} * @return List<{@link BatchInstance}> return the batch instance list. */ @Override public List<BatchInstance> getBatchInstancesExcludedRemoteBatch(final String searchString, List<BatchInstanceStatus> statusList, final int firstResult, final int maxResults, final List<Order> orderList, final List<BatchInstanceFilter> filterClauseList, final List<BatchPriority> batchPriorities, String userName, final Set<String> userRoles, EphesoftUser ephesoftUser) { EphesoftCriteria criteria = criteria(); if (searchString != null && !searchString.isEmpty()) { String batchNameLocal = searchString.replaceAll("%", "\\\\%"); Criterion nameLikeCriteria = Restrictions.like(BATCH_NAME, "%" + batchNameLocal + "%"); Criterion idLikeCriteria = Restrictions.like(BATCH_INSTANCE_IDENTIFIER, "%" + batchNameLocal + "%"); LogicalExpression searchCriteria = Restrictions.or(nameLikeCriteria, idLikeCriteria); criteria.add(searchCriteria); } if (null != statusList) { criteria.add(Restrictions.in(STATUS, statusList)); criteria.add( Restrictions.or(Restrictions.isNull(CURRENT_USER), Restrictions.eq(CURRENT_USER, userName))); criteria.add(Restrictions.eq(IS_REMOTE, false)); } if (null != batchPriorities && !(batchPriorities.isEmpty())) { Disjunction disjunction = Restrictions.disjunction(); for (BatchPriority batchPriority : batchPriorities) { if (null != batchPriority) { Integer lowValue = batchPriority.getLowerLimit(); Integer upperValue = batchPriority.getUpperLimit(); disjunction.add(Restrictions.between(PRIORITY, lowValue, upperValue)); } else { disjunction = Restrictions.disjunction(); break; } } criteria.add(disjunction); } List<BatchInstance> batchInstanceList = new ArrayList<BatchInstance>(); Set<String> batchClassIdentifiers = batchClassGroupsDao.getBatchClassIdentifierForUserRoles(userRoles); switch (ephesoftUser) { case NORMAL_USER: batchClassIdentifiers = batchClassGroupsDao.getBatchClassIdentifierForUserRoles(userRoles); Set<String> batchInstanceIdentifierSet = batchInstanceGroupsDao .getBatchInstanceIdentifiersExceptUserRoles(userRoles); Set<String> batchInstanceIdentifiers = batchInstanceGroupsDao .getBatchInstanceIdentifierForUserRoles(userRoles); if ((null != batchClassIdentifiers && batchClassIdentifiers.size() > 0) || (null != batchInstanceIdentifiers && batchInstanceIdentifiers.size() > 0)) { BatchInstanceFilter[] filters = null; if (filterClauseList != null) { filters = filterClauseList.toArray(new BatchInstanceFilter[filterClauseList.size()]); } Order[] orders = null; if (orderList != null) { orders = orderList.toArray(new Order[orderList.size()]); } if (null != batchClassIdentifiers && batchClassIdentifiers.size() > 0 && null != batchInstanceIdentifiers && batchInstanceIdentifiers.size() > 0 && null != batchInstanceIdentifierSet && batchInstanceIdentifierSet.size() > 0) { final Conjunction conjunction = Restrictions.conjunction(); final Disjunction disjunction = Restrictions.disjunction(); criteria.createAlias(BATCH_CLASS, BATCH_CLASS); disjunction.add(Restrictions.in(BATCH_CLASS_IDENTIFIER, batchClassIdentifiers)); disjunction.add(Restrictions.in(BATCH_INSTANCE_IDENTIFIER, batchInstanceIdentifiers)); conjunction.add(Restrictions .not(Restrictions.in(BATCH_INSTANCE_IDENTIFIER, batchInstanceIdentifierSet))); conjunction.add(disjunction); criteria.add(conjunction); } else if (null != batchClassIdentifiers && batchClassIdentifiers.size() > 0 && null != batchInstanceIdentifiers && batchInstanceIdentifiers.size() > 0) { final Disjunction disjunction = Restrictions.disjunction(); criteria.createAlias(BATCH_CLASS, BATCH_CLASS); disjunction.add(Restrictions.in(BATCH_CLASS_IDENTIFIER, batchClassIdentifiers)); disjunction.add(Restrictions.in(BATCH_INSTANCE_IDENTIFIER, batchInstanceIdentifiers)); criteria.add(disjunction); } else if (null != batchClassIdentifiers && batchClassIdentifiers.size() > 0 && null != batchInstanceIdentifierSet && batchInstanceIdentifierSet.size() > 0) { final Conjunction conjunction = Restrictions.conjunction(); criteria.createAlias(BATCH_CLASS, BATCH_CLASS); conjunction.add(Restrictions.in(BATCH_CLASS_IDENTIFIER, batchClassIdentifiers)); conjunction.add(Restrictions .not(Restrictions.in(BATCH_INSTANCE_IDENTIFIER, batchInstanceIdentifierSet))); criteria.add(conjunction); } else if (null != batchInstanceIdentifiers && batchInstanceIdentifiers.size() > 0 && null != batchInstanceIdentifierSet && batchInstanceIdentifierSet.size() > 0) { final Conjunction conjunction = Restrictions.conjunction(); conjunction.add(Restrictions.in(BATCH_INSTANCE_IDENTIFIER, batchInstanceIdentifiers)); conjunction.add(Restrictions .not(Restrictions.in(BATCH_INSTANCE_IDENTIFIER, batchInstanceIdentifierSet))); criteria.add(conjunction); } else if (null != batchInstanceIdentifiers && batchInstanceIdentifiers.size() > 0) { criteria.add(Restrictions.in(BATCH_INSTANCE_IDENTIFIER, batchInstanceIdentifiers)); } else if (null != batchClassIdentifiers && batchClassIdentifiers.size() > 0) { criteria.createAlias(BATCH_CLASS, BATCH_CLASS); criteria.add(Restrictions.in(BATCH_CLASS_IDENTIFIER, batchClassIdentifiers)); } batchInstanceList = find(criteria, firstResult, maxResults, filters, orders); } break; default: if (null != batchClassIdentifiers && batchClassIdentifiers.size() > 0) { BatchInstanceFilter[] filters = null; if (filterClauseList != null) { filters = filterClauseList.toArray(new BatchInstanceFilter[filterClauseList.size()]); } Order[] orders = null; if (orderList != null) { orders = orderList.toArray(new Order[orderList.size()]); } criteria.createAlias(BATCH_CLASS, BATCH_CLASS); criteria.add(Restrictions.in(BATCH_CLASS_IDENTIFIER, batchClassIdentifiers)); batchInstanceList = find(criteria, firstResult, maxResults, filters, orders); } break; } return batchInstanceList; }