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:ca.myewb.controllers.common.Member.java

License:Open Source License

private void searchMode(Context ctx) throws Exception, RedirectionException {
    MemberSearchForm searchForm = null;/*ww w . j av  a2 s .  co  m*/
    List result = null;

    if (currentUser.isAdmin()) {
        result = hibernateSession.createQuery("FROM GroupChapterModel where visible=true").list();
    }

    // run search, store results in temp list
    if (requestParams.get("Advanced") != null) {
        searchForm = new MemberSearchForm(getInterpageVar("membersearchtarget") + "/search", requestParams,
                true, result);
        ctx.put("advanced", new Boolean(true));
    } else {
        searchForm = new MemberSearchForm(getInterpageVar("membersearchtarget") + "/search", requestParams,
                false, result);
    }

    Message m = searchForm.validate();

    if (m != null) // validation failed, redirect to self, next time we'll be entering the next block
    {
        // Display error and prompt user to fix
        throw getValidationException(searchForm, m, (String) getInterpageVar("membersearchtarget"));
    }

    //form validation succeeded!
    String first = searchForm.getParameter("Firstname");
    String last = searchForm.getParameter("Lastname");
    String email = searchForm.getParameter("Email");
    String city = searchForm.getParameter("City", false);
    String province = searchForm.getParameter("Province", false);
    String lang = searchForm.getParameter("Language", false);
    String gender = searchForm.getParameter("Gender", false);
    String birth = searchForm.getParameter("Birth", false);
    String student = searchForm.getParameter("Student", false);
    String username = searchForm.getParameter("Username", false);

    Criteria crit = hibernateSession.createCriteria(UserModel.class);

    if ((username != null) && !username.equals("")) {
        crit.add(Restrictions.like("username", "%" + username.trim() + "%"));
    }

    if ((first != null) && !first.equals("")) {
        crit.add(Restrictions.like("firstname", "%" + first.trim() + "%"));
    }

    if ((last != null) && !last.equals("")) {
        crit.add(Restrictions.like("lastname", "%" + last.trim() + "%"));
    }

    if ((email != null) && !email.equals("")) {
        List ids = HibernateUtil.currentSession()
                .createSQLQuery("SELECT userid FROM useremails e WHERE e.email LIKE '%" + email.trim() + "%'")
                .list();
        if (!ids.isEmpty()) {
            crit.add(Restrictions.in("id", ids));
        } else {
            crit.add(Restrictions.eq("email", "###invalidemail###")); //so that no results are given
        }
    }

    if ((city != null) && !city.equals("")) {
        crit.add(Restrictions.like("address", "%\n%" + city.trim() + "%\n%"));
    }

    if ((province != null) && !province.equals("")) {
        crit.add(Restrictions.like("address", "%\n%" + province.trim() + "%\n%"));
    }

    if ((lang != null) && !lang.equals("")) {
        crit.add(Restrictions.eq("language", lang.trim()));
    }

    if ((gender != null) && !gender.equals("")) {
        crit.add(Restrictions.eq("gender", gender.trim()));
    }

    if ((birth != null) && !birth.equals("")) {
        crit.add(Restrictions.eq("birth", new Integer(birth)));
    }

    if ((student != null) && !student.equals("")) {
        crit.add(Restrictions.eq("student", new Boolean(student)));
    }

    // Get "my" own lead groups, since I can only
    // see people in groups I lead
    crit.createAlias("roles", "r");
    crit.add(Restrictions.isNull("r.end"));

    if (!currentUser.isAdmin()) {
        crit.add(Restrictions.in("r.group", currentUser.getGroups('l')));
    } else {
        GroupChapterModel chapter = null;

        if (searchForm.getParameter("Chapter", false) != null) {
            if (!searchForm.getParameter("Chapter", false).equals("")) {
                chapter = (GroupChapterModel) hibernateSession.get(GroupChapterModel.class,
                        new Integer(searchForm.getParameter("Chapter", false)));
            }
        }

        if (chapter != null) {
            crit.add(Restrictions.eq("r.group", chapter));
            crit.add(Restrictions.eq("r.level", new Character('m')));
        }

        //don't filter out deleted users!
    }

    crit.add(Restrictions.ne("id", new Integer(1)));

    crit.addOrder(Order.asc("lastname"));
    crit.addOrder(Order.asc("firstname"));
    crit.setProjection(Projections.groupProperty("id"));
    crit.setMaxResults(101);

    List uniqueResultsList = crit.list();
    Vector<UserModel> uniqueResults = new Vector<UserModel>();

    if (uniqueResultsList.size() < 101) {
        Iterator iter = uniqueResultsList.iterator();

        while (iter.hasNext()) {
            Integer i = (Integer) iter.next();

            // This try/catch block is a workaround to the deleted-admin-causes-cgilib-blowup bug
            try {
                uniqueResults.add((UserModel) hibernateSession.get(UserModel.class, i));
            } catch (Exception e) {
                log.warn("Unable to add user to usersearch: id " + i.toString());
            }
        }
    } else {
        ctx.put("tooMany", "yes");
    }

    setInterpageVar("membersearchtempresults", uniqueResultsList);
    ctx.put("tempresults", uniqueResults); //NOT the ids, but the users
    ctx.put("searchmode", "yes");
    if (searchForm == null) {
        log.info("search form was null!");
        throw new RedirectionException(getInterpageVar("membersearchtarget") + "/new");
    }

    ctx.put("form", searchForm);
    ctx.put("target", getInterpageVar("membersearchtarget"));
}

From source file:ca.myewb.controllers.common.PostList.java

License:Open Source License

private void addBooleanFilters(boolean onlyNew, boolean findReplies, boolean onlyFlagged, boolean onlyFeatured,
        boolean findEmails, boolean sortByLastReply, Criteria criteria) {

    if (!findReplies) {
        criteria.add(Restrictions.isNull("parent"));
    }//from w w  w . java2  s .c  o  m

    if (!findEmails) {
        criteria.add(Restrictions.eq("emailed", false));
    }

    if (sortByLastReply) {
        criteria.addOrder(Order.desc("lastReply"));
    } else if (onlyNew) {
        SimpleExpression mainDate = Restrictions.gt("date", currentUser.getLastLogin());
        criteria.add(mainDate);
        criteria.addOrder(Order.asc("date"));
    } else {
        criteria.addOrder(Order.desc("date"));
    }

    if (onlyFlagged) {
        Set<PostModel> flaggedPosts2 = currentUser.getFlaggedPosts();
        if (flaggedPosts2.isEmpty()) {
            criteria.add(Restrictions.eq("id", 0));
        } else {
            Vector<Integer> flaggedIDs = new Vector<Integer>();
            for (PostModel p : flaggedPosts2) {
                flaggedIDs.add(p.getId());
            }

            Criterion flaggedSelf = Restrictions.in("id", flaggedIDs);
            Criterion flaggedParent = Restrictions.in("parent", flaggedPosts2);
            criteria.add(Restrictions.or(flaggedSelf, flaggedParent));
        }
    }

    if (onlyFeatured) {
        criteria.add(Restrictions.eq("featured", true));
    }

}

From source file:ca.myewb.controllers.common.PostList.java

License:Open Source License

private Criteria getUserPostCriteria(UserLogic targetUser) {
    // Find matching posts
    Criteria criteria = hibernateSession.createCriteria(PostModel.class);
    criteria.addOrder(Order.desc("date"));

    criteria.add(Restrictions.eq("poster", targetUser));

    if (!currentUser.isAdmin()) {
        criteria.add(Restrictions.in("group", Permissions.visibleGroups(currentUser, false)));
    }//from w ww.j a  v a2  s  .c o  m
    return criteria;
}

From source file:ca.myewb.controllers.common.PostList.java

License:Open Source License

private Criteria getVisiblePostsCriteria(String filter, boolean onlyNew, boolean findReplies,
        boolean onlyFlagged, boolean onlyFeatured, boolean findEmails, boolean sortByLastReply) {
    Criteria criteria = hibernateSession.createCriteria(PostModel.class);

    addBooleanFilters(onlyNew, findReplies, onlyFlagged, onlyFeatured, findEmails, sortByLastReply, criteria);

    addFilter(filter, criteria);/*from ww w .  j  a  v  a  2  s.  c  o  m*/

    if (!currentUser.isAdmin() || !currentUser.getAdminToggle()) {
        criteria.add(Restrictions.in("group", Permissions.visibleGroups(currentUser, true)));
    }

    return criteria;
}

From source file:ca.myewb.controllers.common.PostList.java

License:Open Source License

private Criteria getChapterPostsCriteria(GroupChapterModel chapter, boolean findEmails, boolean findReplies,
        boolean frontpagebeta, String filter) {
    Criteria criteria = hibernateSession.createCriteria(PostModel.class);

    criteria.add(Restrictions.in("group", Permissions.visibleGroupsInChapter(currentUser, chapter)));

    addBooleanFilters(false, findReplies, false, false, findEmails, frontpagebeta, criteria);

    addFilter(filter, criteria);// ww  w. j a va2s  .  com
    return criteria;
}

From source file:ca.myewb.controllers.common.WhiteboardList.java

License:Open Source License

public List<WhiteboardModel> listPaginatedVisibleWhiteboards(int startPage, int eventsPerPage)
        throws HibernateException {
    Criteria criteria = hibernateSession.createCriteria(WhiteboardModel.class);

    if (!currentUser.isAdmin() || !currentUser.getAdminToggle()) {
        criteria.add(Restrictions.in("group", Permissions.visibleGroups(currentUser, true)));
    }//w  w w  .  ja v  a 2s  .co m
    criteria.add(Restrictions.ne("numEdits", 0));
    criteria.add(Restrictions.gt("lastEditDate", currentUser.getLastLogin()));
    criteria.addOrder(Order.desc("lastEditDate"));
    criteria.setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY);

    addPagination(startPage, eventsPerPage, criteria);

    return getUniqueWhiteboardList(criteria);
}

From source file:ca.myewb.controllers.common.WhiteboardList.java

License:Open Source License

public int visibleWhiteboardCount() throws HibernateException {
    Criteria criteria = hibernateSession.createCriteria(WhiteboardModel.class);

    if (!currentUser.isAdmin() || !currentUser.getAdminToggle()) {
        criteria.add(Restrictions.in("group", Permissions.visibleGroups(currentUser, true)));
    }/*from  w ww.  ja  va 2s . co  m*/
    criteria.add(Restrictions.ne("numEdits", 0));
    criteria.add(Restrictions.gt("lastEditDate", currentUser.getLastLogin()));

    criteria.setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY);

    return getUniqueWhiteboardCount(criteria);
}

From source file:ca.myewb.frame.Helpers.java

License:Open Source License

public static List<GroupModel> getNationalRepLists(boolean includeUni, boolean includePro) {
    Criteria crit = HibernateUtil.currentSession().createCriteria(GroupModel.class);
    crit.setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY);
    ArrayList<Object> types = new ArrayList<Object>();
    types.add('b');
    if (includePro) {
        types.add('p');
    }/*w ww  .jav  a  2  s.  c o m*/
    if (includeUni) {
        types.add('s');
    }
    crit.add(Restrictions.in("nationalRepType", types));

    return (new SafeHibList<GroupModel>(crit)).list();
}

From source file:cc.cnfc.core.orm.hibernate.SimpleHibernateDao.java

License:Open Source License

/**
 * id?.
 */
public List<T> findByIds(List<PK> ids) {
    return find(Restrictions.in(getIdName(), ids));
}

From source file:ch.systemsx.cisd.openbis.generic.server.dataaccess.db.PersonDAO.java

License:Apache License

public final List<PersonPE> listByCodes(Collection<String> userIds) throws DataAccessException {
    if (userIds.size() == 0)
        return new ArrayList<PersonPE>();
    final Criteria criteria = getSession().createCriteria(PersonPE.class);
    criteria.add(Restrictions.in("userId", userIds));
    return cast(criteria.list());
}