Example usage for org.hibernate Criteria createCriteria

List of usage examples for org.hibernate Criteria createCriteria

Introduction

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

Prototype

public Criteria createCriteria(String associationPath) throws HibernateException;

Source Link

Document

Create a new Criteria, "rooted" at the associated entity.

Usage

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

License:Open Source License

@Override
public Long getAssignedPrincipalCount(Realm realm, CriteriaConfiguration... configs) {

    Criteria criteria = createCriteria(getResourceClass());

    for (CriteriaConfiguration c : configs) {
        c.configure(criteria);//from   ww w. ja v a 2  s.  com
    }

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

    criteria = criteria.createCriteria("principals");
    criteria.setProjection(Projections.distinct(Projections.property("id")));
    criteria.setResultTransformer(CriteriaSpecification.PROJECTION);

    List<?> uniquePrincipals = criteria.list();

    return (long) uniquePrincipals.size();

}

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

License:Open Source License

@Override
public Long getAssignedResourceCount(List<Principal> principals, final String searchPattern,
        CriteriaConfiguration... configs) {

    Criteria criteria = createCriteria(getResourceClass());
    criteria.setProjection(Projections.property("id"));
    criteria.setResultTransformer(CriteriaSpecification.PROJECTION);
    if (StringUtils.isNotBlank(searchPattern)) {
        criteria.add(Restrictions.ilike("name", searchPattern));
    }//ww  w.j  a  va  2  s . co m

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

    criteria.add(Restrictions.eq("realm", principals.get(0).getRealm()));
    criteria = criteria.createCriteria("roles");
    criteria.add(Restrictions.eq("allUsers", true));

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

    criteria = createCriteria(getResourceClass());
    criteria.setProjection(Projections.countDistinct("name"));
    criteria.setResultTransformer(CriteriaSpecification.PROJECTION);
    if (StringUtils.isNotBlank(searchPattern)) {
        criteria.add(Restrictions.ilike("name", searchPattern));
    }

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

    criteria.add(Restrictions.eq("realm", principals.get(0).getRealm()));
    if (ids.size() > 0) {
        criteria.add(Restrictions.not(Restrictions.in("id", ids)));
    }

    criteria = criteria.createCriteria("roles");
    criteria.add(Restrictions.eq("allUsers", false));
    criteria = criteria.createCriteria("principals");
    List<Long> pids = new ArrayList<Long>();
    for (Principal p : principals) {
        pids.add(p.getId());
    }
    criteria.add(Restrictions.in("id", pids));

    Long count = (Long) criteria.uniqueResult();
    return count + ids.size();

}

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

License:Open Source License

@SuppressWarnings("unchecked")
@Override/*from  w ww .  j a v a  2 s .  c om*/
public List<AssignableResource> getAllAssignableResources(List<Principal> principals) {

    Set<Long> ids = new HashSet<Long>();
    for (Principal p : principals) {
        ids.add(p.getId());
    }
    Criteria crit = createCriteria(AssignableResource.class);
    crit.setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY);
    crit = crit.createCriteria("roles");
    crit = crit.createCriteria("principals");
    crit.add(Restrictions.in("id", ids));

    return (List<AssignableResource>) crit.list();
}

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

License:Open Source License

@SuppressWarnings("unchecked")
@Override/*from w  ww  . java 2 s . c om*/
public T getResourceByIdAndPrincipals(Long resourceId, List<Principal> principals) {

    Set<Long> ids = new HashSet<Long>();
    for (Principal p : principals) {
        ids.add(p.getId());
    }
    Criteria crit = createCriteria(getResourceClass());
    crit.add(Restrictions.eq("id", resourceId));
    crit.setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY);
    crit = crit.createCriteria("roles");
    crit = crit.createCriteria("principals");
    crit.add(Restrictions.in("id", ids));

    return (T) crit.uniqueResult();
}

From source file:com.hypersocket.session.SessionRepositoryImpl.java

License:Open Source License

@Override
@Transactional(readOnly = true)/*from w w  w  . j  av  a2s .  co  m*/
public List<Session> search(Realm realm, final String searchPattern, int start, int length,
        ColumnSort[] sorting, CriteriaConfiguration... configs) {
    return super.search(getEntityClass(), "uuid", "", start, length, sorting,
            ArrayUtils.addAll(configs, new RealmOrSystemRealmCriteria(realm), new CriteriaConfiguration() {

                @Override
                public void configure(Criteria criteria) {
                    criteria.add(Restrictions.eq("system", false));
                    criteria.add(Restrictions.isNull("signedOut"));

                    if (StringUtils.isNotEmpty(searchPattern)) {
                        criteria = criteria.createCriteria("principal");
                        criteria.add(Restrictions.ilike("name", searchPattern));
                    }

                }
            }));
}

From source file:com.hypersocket.session.SessionRepositoryImpl.java

License:Open Source License

@Override
@Transactional(readOnly = true)//from w w w .java  2s.  com
public long getResourceCount(Realm realm, final String searchPattern, CriteriaConfiguration... configs) {
    return getCount(getEntityClass(), "uuid", "",
            ArrayUtils.addAll(configs, new RealmOrSystemRealmCriteria(realm), new CriteriaConfiguration() {

                @Override
                public void configure(Criteria criteria) {
                    criteria.add(Restrictions.eq("system", false));
                    criteria.add(Restrictions.isNull("signedOut"));

                    if (StringUtils.isNotEmpty(searchPattern)) {
                        criteria = criteria.createCriteria("principal");
                        criteria.add(Restrictions.ilike("name", searchPattern));
                    }
                }
            }));
}

From source file:com.liferay.portal.workflow.jbpm.dao.CustomSession.java

License:Open Source License

public int countTaskInstances(long processInstanceId, long tokenId, String[] actorIds, boolean pooledActors,
        Boolean completed) {// w  w  w . j  a  v  a  2  s.c o  m

    if ((actorIds != null) && (actorIds.length == 0)) {
        return 0;
    }

    try {
        Criteria criteria = _session.createCriteria(TaskInstance.class);

        criteria.setProjection(Projections.countDistinct("id"));

        if (processInstanceId > 0) {
            criteria.add(Restrictions.eq("processInstance.id", processInstanceId));
        } else if (tokenId > 0) {
            criteria.add(Restrictions.eq("token.id", tokenId));
        } else if (actorIds != null) {
            if (pooledActors) {
                Criteria subcriteria = criteria.createCriteria("pooledActors");

                subcriteria.add(Restrictions.in("actorId", actorIds));
            } else {
                criteria.add(Restrictions.in("actorId", actorIds));
            }
        }

        if (completed != null) {
            if (completed.booleanValue()) {
                criteria.add(Restrictions.isNotNull("end"));
            } else {
                criteria.add(Restrictions.isNull("end"));
            }
        }

        Number count = (Number) criteria.uniqueResult();

        return count.intValue();
    } catch (Exception e) {
        throw new JbpmException(e);
    }
}

From source file:com.liferay.portal.workflow.jbpm.dao.CustomSession.java

License:Open Source License

public List<TaskInstance> findTaskInstances(long processInstanceId, long tokenId, String[] actorIds,
        boolean pooledActors, Boolean completed, int start, int end, OrderByComparator orderByComparator) {

    if ((actorIds != null) && (actorIds.length == 0)) {
        return Collections.emptyList();
    }/*w w w  . ja va 2s  .com*/

    try {
        Criteria criteria = _session.createCriteria(TaskInstance.class);

        criteria.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);

        if (processInstanceId > 0) {
            criteria.add(Restrictions.eq("processInstance.id", processInstanceId));
        } else if (tokenId > 0) {
            criteria.add(Restrictions.eq("token.id", tokenId));
        }

        if (actorIds != null) {
            if (pooledActors) {
                Criteria subcriteria = criteria.createCriteria("pooledActors");

                subcriteria.add(Restrictions.in("actorId", actorIds));

                criteria.add(Restrictions.isNull("actorId"));
            } else {
                criteria.add(Restrictions.in("actorId", actorIds));
            }
        }

        if (completed != null) {
            if (completed.booleanValue()) {
                criteria.add(Restrictions.isNotNull("end"));
            } else {
                criteria.add(Restrictions.isNull("end"));
            }
        }

        addPagination(criteria, start, end);
        addOrder(criteria, orderByComparator);

        return criteria.list();
    } catch (Exception e) {
        throw new JbpmException(e);
    }
}

From source file:com.liferay.portal.workflow.jbpm.dao.CustomSession.java

License:Open Source License

protected void addSearchByUserRolesCriterion(Criteria criteria, Boolean searchByUserRoles,
        ServiceContext serviceContext) throws SystemException {

    if (searchByUserRoles == null) {
        return;// w  w w  .j a va2s  .co m
    }

    Criteria assigneesCriteria = criteria.createCriteria("assignees");

    if (!searchByUserRoles) {
        assigneesCriteria.add(Restrictions.eq("assigneeClassName", User.class.getName()));
        assigneesCriteria.add(Restrictions.eq("assigneeClassPK", serviceContext.getUserId()));

        return;
    }

    List<Long> roleIds = RoleRetrievalUtil.getRoleIds(serviceContext);

    List<UserGroupRole> userGroupRoles = UserGroupRoleLocalServiceUtil
            .getUserGroupRoles(serviceContext.getUserId());

    if (userGroupRoles.isEmpty()) {
        assigneesCriteria.add(Restrictions.eq("assigneeClassName", Role.class.getName()));
        assigneesCriteria.add(Restrictions.in("assigneeClassPK", roleIds.toArray(new Long[roleIds.size()])));
    } else {
        Junction junction = Restrictions.disjunction();

        junction.add(Restrictions.and(Restrictions.eq("assigneeClassName", Role.class.getName()),
                Restrictions.in("assigneeClassPK", roleIds.toArray(new Long[roleIds.size()]))));

        for (UserGroupRole userGroupRole : userGroupRoles) {
            junction.add(Restrictions.and(Restrictions.eq("groupId", userGroupRole.getGroupId()),
                    Restrictions.and(Restrictions.eq("assigneeClassName", Role.class.getName()),
                            Restrictions.eq("assigneeClassPK", userGroupRole.getRoleId()))));
        }

        assigneesCriteria.add(junction);
    }
}

From source file:com.liferay.portal.workflow.jbpm.dao.CustomSession.java

License:Open Source License

protected Criteria buildProcessInstanceExtensionSearchCriteria(long companyId, Long userId,
        String assetClassName, Long assetClassPK, Boolean completed) {

    Criteria criteria = _session.createCriteria(ProcessInstanceExtensionImpl.class);

    criteria.add(Restrictions.eq("companyId", companyId));

    if (userId != null) {
        criteria.add(Restrictions.eq("userId", userId));
    }/*from w w  w. j  a v  a 2  s.  co  m*/

    if (Validator.isNotNull(assetClassName)) {
        criteria.add(Restrictions.like("className", assetClassName));
    }

    if (Validator.isNotNull(assetClassPK)) {
        criteria.add(Restrictions.eq("classPK", assetClassPK));
    }

    if (completed != null) {
        Criteria completionCriteria = criteria.createCriteria("processInstance");

        if (completed) {
            completionCriteria.add(Restrictions.isNotNull("end"));
        } else {
            completionCriteria.add(Restrictions.isNull("end"));
        }
    }

    return criteria;
}