List of usage examples for org.hibernate.criterion MatchMode ANYWHERE
MatchMode ANYWHERE
To view the source code for org.hibernate.criterion MatchMode ANYWHERE.
Click Source Link
From source file:aa.PersonDog.dao.AbstractDao.java
protected List queryByExample(Object obj) { List objects = null;// w w w . j ava 2 s . c o m try { startOperation(); // https://docs.jboss.org/hibernate/orm/3.3/reference/en/html/querycriteria.html // http://blog.caelum.com.br/simplifique-suas-consultas-com-o-query-by-example-do-hibernate/ Example ex = Example.create(obj).excludeZeroes() //exclude zero valued properties .ignoreCase() //perform case insensitive string comparisons .enableLike(MatchMode.ANYWHERE); //use like for string comparisons Criteria criteria = session.createCriteria(obj.getClass()).add(ex); objects = criteria.list(); commit(); } catch (HibernateException e) { handleException(e); } finally { HibernateFactory.close(session); } return objects; }
From source file:au.edu.uts.eng.remotelabs.schedserver.permissions.pages.UsersPage.java
License:Open Source License
/** * Gets a list of users with a specific search term. The users may be * excluded from a specific class. /*from ww w .j a v a2 s . co m*/ * * @param request * @return response * @throws Exception */ @SuppressWarnings("unchecked") public JSONArray list(HttpServletRequest request) throws JSONException { JSONArray arr = new JSONArray(); Criteria qu = this.db.createCriteria(User.class); String search = request.getParameter("search"); if (search != null) { /* Search filter. */ qu.add(Restrictions.disjunction().add(Restrictions.like("name", search, MatchMode.ANYWHERE)) .add(Restrictions.like("firstName", search, MatchMode.ANYWHERE)) .add(Restrictions.like("lastName", search, MatchMode.ANYWHERE))); } if (request.getParameter("max") != null) { /* Max results. */ qu.setMaxResults(Integer.parseInt(request.getParameter("max"))); } if (request.getParameter("in") != null) { /* Users in class. */ UserClass inClass = new UserClassDao(this.db).findByName(request.getParameter("in")); if (inClass == null) { this.logger.warn("Not going to add in class as a user list restriction because the class '" + request.getParameter("in") + "' was not found."); } else { qu.createCriteria("userAssociations").add(Restrictions.eq("userClass", inClass)); } } if (request.getParameter("notIn") != null) { /* Users not in class. */ UserClass notInClass = new UserClassDao(this.db).findByName(request.getParameter("notIn")); if (notInClass == null) { this.logger.warn("Not going to add not in class as a user list restriction because the class '" + request.getParameter("notIn") + "' was not found."); } else { DetachedCriteria subQu = DetachedCriteria.forClass(User.class) .setProjection(Property.forName("name")).createCriteria("userAssociations") .add(Restrictions.eq("userClass", notInClass)); List<String> names = subQu.getExecutableCriteria(this.db).list(); if (names.size() > 0) { qu.add(Restrictions.not(Restrictions.in("name", names))); } } } qu.setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY); qu.addOrder(Order.asc("lastName")); qu.addOrder(Order.asc("name")); for (User user : (List<User>) qu.list()) { JSONObject uo = new JSONObject(); uo.put("name", user.getNamespace() + "-_-" + user.getName()); if (user.getFirstName() == null || user.getLastName() == null) { uo.put("display", user.getName()); } else { uo.put("display", user.getLastName() + ", " + user.getFirstName()); } arr.put(uo); } return arr; }
From source file:au.edu.uts.eng.remotelabs.schedserver.reports.intf.Reports.java
License:Open Source License
@SuppressWarnings("unchecked") @Override/* w w w. jav a 2 s . c o m*/ public QueryInfoResponse queryInfo(final QueryInfo queryInfo) { /** Request parameters. **/ final QueryInfoType qIReq = queryInfo.getQueryInfo(); String debug = "Received " + this.getClass().getSimpleName() + "#queryInfo with params:"; debug += "Requestor: " + qIReq.getRequestor() + ", QuerySelect: " + qIReq.getQuerySelect(); if (qIReq.getQueryFilter() != null) { debug += ", QueryFilter: " + qIReq.getQueryFilter(); } debug += ", limit: " + qIReq.getLimit(); this.logger.debug(debug); final RequestorType uid = qIReq.getRequestor(); /** Response parameters. */ final QueryInfoResponse resp = new QueryInfoResponse(); final QueryInfoResponseType respType = new QueryInfoResponseType(); respType.setTypeForQuery(TypeForQuery.RIG); resp.setQueryInfoResponse(respType); final org.hibernate.Session ses = DataAccessActivator.getNewSession(); /* First Query Filter - this contains the main selection type to be selected */ final QueryFilterType query0 = qIReq.getQuerySelect(); try { Criteria cri; /* ---------------------------------------------------------------- * -- Load the requestor. -- * ---------------------------------------------------------------- */ final User user = this.getUserFromUserID(uid, ses); if (user == null) { this.logger.info("Unable to generate report because the user has not been found. Supplied " + "credentials ID=" + uid.getUserID() + ", namespace=" + uid.getUserNamespace() + ", " + "name=" + uid.getUserName() + '.'); return resp; } final String persona = user.getPersona(); /* Check for type of query to determine selection parameters */ if (query0.getTypeForQuery() == TypeForQuery.RIG) { /* ---------------------------------------------------------------- * -- Rig Information only available to ADMIN, to be mediated -- * -- by interface. No criteria on Requestor -- * ---------------------------------------------------------------- */ cri = ses.createCriteria(Rig.class); if (query0.getQueryLike() != null) { cri.add(Restrictions.like("name", query0.getQueryLike(), MatchMode.ANYWHERE)); } if (qIReq.getLimit() > 0) cri.setMaxResults(qIReq.getLimit()); cri.addOrder(Order.asc("name")); for (final Rig o : (List<Rig>) cri.list()) { respType.addSelectionResult(o.getName()); } } else if (query0.getTypeForQuery() == TypeForQuery.RIG_TYPE) { /* ---------------------------------------------------------------- * -- Rig Type Information only available to ADMIN, to be -- * -- mediated by interface. No criteria on Requestor -- * ---------------------------------------------------------------- */ cri = ses.createCriteria(RigType.class); if (query0.getQueryLike() != null) { cri.add(Restrictions.like("name", query0.getQueryLike(), MatchMode.ANYWHERE)); } if (qIReq.getLimit() > 0) cri.setMaxResults(qIReq.getLimit()); cri.addOrder(Order.asc("name")); for (final RigType o : (List<RigType>) cri.list()) { respType.addSelectionResult(o.getName()); } } else if (query0.getTypeForQuery() == TypeForQuery.USER_CLASS) { cri = ses.createCriteria(UserClass.class); if (query0.getQueryLike() != null) { cri.add(Restrictions.like("name", query0.getQueryLike(), MatchMode.ANYWHERE)); } if (qIReq.getLimit() > 0) cri.setMaxResults(qIReq.getLimit()); cri.addOrder(Order.asc("name")); /* ---------------------------------------------------------------- * Check that the requestor has permissions to request the report. * If persona = USER, no reports (USERs will not get here) * If persona = ADMIN, any report * If persona = ACADEMIC, only for classes they own if they can generate reports * ---------------------------------------------------------------- */ if (User.ACADEMIC.equals(persona)) { DetachedCriteria apList = DetachedCriteria.forClass(AcademicPermission.class, "ap") .add(Restrictions.eq("ap.canGenerateReports", true)) .setProjection(Property.forName("userClass")); cri.add(Subqueries.propertyIn("id", apList)); for (final UserClass o : (List<UserClass>) cri.list()) { respType.addSelectionResult(o.getName()); } } else if (User.ADMIN.equals(persona)) { for (final UserClass o : (List<UserClass>) cri.list()) { respType.addSelectionResult(o.getName()); } } } else if (query0.getTypeForQuery() == TypeForQuery.USER) { cri = ses.createCriteria(User.class, "u"); /* ---------------------------------------------------------------- * If persona = USER, no reports (USERs will not get here) * If persona = ADMIN, any report * If persona = ACADEMIC, only for users in classes they own if they can genrate reports * ---------------------------------------------------------------- */ if (query0.getQueryLike() != null) { cri.add(Restrictions.like("name", query0.getQueryLike(), MatchMode.ANYWHERE)); } if (qIReq.getLimit() > 0) cri.setMaxResults(qIReq.getLimit()); cri.addOrder(Order.asc("name")); if (User.ACADEMIC.equals(persona)) { DetachedCriteria apList = DetachedCriteria.forClass(AcademicPermission.class, "ap") .add(Restrictions.eq("ap.canGenerateReports", true)) .setProjection(Property.forName("userClass")); DetachedCriteria userList = DetachedCriteria.forClass(UserAssociation.class, "ua") .add(Subqueries.propertyIn("ua.userClass", apList)) .setProjection(Property.forName("user.id")); cri.add(Subqueries.propertyIn("id", userList)); for (final User o : (List<User>) cri.list()) { respType.addSelectionResult(o.getNamespace() + ':' + o.getName()); } } else if (User.ADMIN.equals(persona)) { for (final User o : (List<User>) cri.list()) { respType.addSelectionResult(o.getNamespace() + ':' + o.getName()); } } } else if (query0.getTypeForQuery() == TypeForQuery.REQUEST_CAPABILITIES) { cri = ses.createCriteria(RequestCapabilities.class); if (query0.getQueryLike() != null) { cri.add(Restrictions.like("capabilities", query0.getQueryLike(), MatchMode.ANYWHERE)); } if (qIReq.getLimit() > 0) cri.setMaxResults(qIReq.getLimit()); cri.addOrder(Order.asc("capabilities")); final List<RequestCapabilities> list = cri.list(); for (final RequestCapabilities o : list) { respType.addSelectionResult(o.getCapabilities()); } } else { this.logger.error( "QueryInfo request failed because TypeForQuery does not have a valid value. Value is " + query0.getTypeForQuery().toString()); return resp; } final QueryFilterType filter[] = qIReq.getQueryFilter(); if (filter != null) { //DODGY Designed, not implemented } } finally { ses.close(); } respType.setTypeForQuery(query0.getTypeForQuery()); resp.setQueryInfoResponse(respType); return resp; }
From source file:au.org.theark.admin.model.dao.AdminDao.java
License:Open Source License
public List<ArkFunction> searchArkFunction(ArkFunction arkFunction) { Criteria criteria = getSession().createCriteria(ArkFunction.class); if (arkFunction.getId() != null) { criteria.add(Restrictions.eq("id", arkFunction.getId())); }/*from ww w.j a va 2s .co m*/ if (arkFunction.getName() != null) { criteria.add(Restrictions.ilike("name", arkFunction.getName(), MatchMode.ANYWHERE)); } return criteria.list(); }
From source file:au.org.theark.admin.model.dao.AdminDao.java
License:Open Source License
public List<ArkModule> searchArkModule(ArkModule arkModule) { Criteria criteria = getSession().createCriteria(ArkFunction.class); if (arkModule.getId() != null) { criteria.add(Restrictions.eq("id", arkModule.getId())); }/*from w w w. ja v a 2 s.co m*/ if (arkModule.getName() != null) { criteria.add(Restrictions.ilike("name", arkModule.getName(), MatchMode.ANYWHERE)); } return criteria.list(); }
From source file:au.org.theark.admin.model.dao.AdminDao.java
License:Open Source License
protected Criteria buildArkModuleCriteria(ArkModule arkModuleCriteria) { Criteria criteria = getSession().createCriteria(ArkModule.class); if (arkModuleCriteria.getId() != null) { criteria.add(Restrictions.eq("id", arkModuleCriteria.getId())); }/* w w w . j a v a 2 s. c o m*/ if (arkModuleCriteria.getName() != null) { criteria.add(Restrictions.ilike("name", arkModuleCriteria.getName(), MatchMode.ANYWHERE)); } return criteria; }
From source file:au.org.theark.admin.model.dao.AdminDao.java
License:Open Source License
protected Criteria buildArkFunctionCriteria(ArkFunction arkFunctionCriteria) { Criteria criteria = getSession().createCriteria(ArkFunction.class); if (arkFunctionCriteria.getId() != null) criteria.add(Restrictions.eq("id", arkFunctionCriteria.getId())); if (arkFunctionCriteria.getName() != null) criteria.add(Restrictions.ilike("name", arkFunctionCriteria.getName(), MatchMode.ANYWHERE)); if (arkFunctionCriteria.getArkFunctionType() != null) criteria.add(Restrictions.eq("arkFunctionType", arkFunctionCriteria.getArkFunctionType())); return criteria; }
From source file:au.org.theark.admin.model.dao.AdminDao.java
License:Open Source License
private Criteria buildArkRoleCriteria(ArkRole arkRoleCriteria) { Criteria criteria = getSession().createCriteria(ArkRole.class); if (arkRoleCriteria.getId() != null) { criteria.add(Restrictions.eq("id", arkRoleCriteria.getId())); }//from ww w. ja va 2 s. com if (arkRoleCriteria.getName() != null) { criteria.add(Restrictions.eq("name", arkRoleCriteria.getName())); } if (arkRoleCriteria.getDescription() != null) { criteria.add(Restrictions.ilike("description", arkRoleCriteria.getName(), MatchMode.ANYWHERE)); } criteria.addOrder(Order.asc("id")); return criteria; }
From source file:au.org.theark.core.dao.ArkAuthorisationDao.java
License:Open Source License
/** * A common method that can be used to apply a search filter on Study entity via a Criteria that is passed from the caller. The Criteria's entity * can be determined by the caller ( i.e can be Study.class or ArkUserRole.class), this is useful when the ArkUser is a SuperAdministrator when we * want all the studies to be displayed.In such a case the Criteria object must be the Study entity to include all studies. * //from w ww .j ava2 s .c o m * @param searchStudy * @param studyCriteria */ private void applyStudySearchCriteria(Study searchStudy, Criteria studyCriteria, boolean isSuperUser) { if (searchStudy.getId() != null) { studyCriteria.add(Restrictions.eq(Constants.STUDY_KEY, searchStudy.getId())); } if (searchStudy.getName() != null) { studyCriteria.add(Restrictions.ilike(Constants.STUDY_NAME, searchStudy.getName(), MatchMode.ANYWHERE)); } if (searchStudy.getDateOfApplication() != null) { studyCriteria.add(Restrictions.eq(Constants.DATE_OF_APPLICATION, searchStudy.getDateOfApplication())); } if (searchStudy.getEstimatedYearOfCompletion() != null) { studyCriteria.add( Restrictions.eq(Constants.EST_YEAR_OF_COMPLETION, searchStudy.getEstimatedYearOfCompletion())); } if (searchStudy.getChiefInvestigator() != null) { studyCriteria.add(Restrictions.ilike(Constants.CHIEF_INVESTIGATOR, searchStudy.getChiefInvestigator(), MatchMode.ANYWHERE)); } if (searchStudy.getContactPerson() != null) { studyCriteria.add(Restrictions.ilike(Constants.CONTACT_PERSON, searchStudy.getContactPerson(), MatchMode.ANYWHERE)); } if (searchStudy.getStudyStatus() != null) { // In future, Super Administrators may be able to search for Archived studies studyCriteria.add(Restrictions.eq("studyStatus", searchStudy.getStudyStatus())); if (!isSuperUser) { // If not a Super Admin always remove Archived studies try { StudyStatus status = getStudyStatus("Archive"); studyCriteria.add(Restrictions.ne("studyStatus", status)); } catch (StatusNotAvailableException notAvailable) { log.error("Cannot look up and filter on archive status. Reference data could be missing"); } } } else { // If no status is selected, then default to return all except Archived try { StudyStatus status = getStudyStatus("Archive"); studyCriteria.add(Restrictions.ne("studyStatus", status)); } catch (StatusNotAvailableException notAvailable) { log.error("Cannot look up and filter on archive status. Reference data could be missing"); } } studyCriteria.addOrder(Order.asc("parentStudy")); studyCriteria.addOrder(Order.asc("id")); studyCriteria.addOrder(Order.asc("name")); }
From source file:au.org.theark.core.dao.ArkAuthorisationDao.java
License:Open Source License
@SuppressWarnings("unchecked") public List<Study> getStudyListForUserAndModule(ArkUserVO arkUserVo, ArkModule arkModule) { List<Study> studyList = new ArrayList<Study>(0); Study searchStudy = arkUserVo.getStudy(); Criteria criteria = getSession().createCriteria(ArkUserRole.class); try {// w ww. j ava 2s . co m // Restrict by user if NOT Super Administrator if (isUserAdminHelper(arkUserVo.getArkUserEntity().getLdapUserName(), RoleConstants.ARK_ROLE_SUPER_ADMINISTATOR)) { // Fix another bug where the Super Administrator will never be able to INNER JOIN between ArkUserRole and Study on studyId // (since a Super Admin should always have null in the arkUserRole's study column) studyList = getAllStudiesForSuperAdmin(arkUserVo.getStudy()); // Get all Studies return studyList; } else { // Not Super Administrator, so continue with building the query criteria.add(Restrictions.eq("arkUser", arkUserVo.getArkUserEntity())); } } catch (EntityNotFoundException e) { log.error(e.getMessage(), e); } if (arkModule != null) { criteria.add(Restrictions.eq("arkModule", arkModule)); } else { // If no arkModule supplied, return empty list log.error("No arkModule supplied, returning empty study list"); return studyList; } // Restrict on study criteria (by default, NOT 'Archive' status) Criteria studyCriteria = criteria.createCriteria("study"); if (searchStudy.getId() != null) { studyCriteria.add(Restrictions.eq(Constants.STUDY_KEY, searchStudy.getId())); } if (searchStudy.getName() != null) { studyCriteria.add(Restrictions.ilike(Constants.STUDY_NAME, searchStudy.getName(), MatchMode.ANYWHERE)); } if (searchStudy.getDateOfApplication() != null) { studyCriteria.add(Restrictions.eq(Constants.DATE_OF_APPLICATION, searchStudy.getDateOfApplication())); } if (searchStudy.getEstimatedYearOfCompletion() != null) { studyCriteria.add( Restrictions.eq(Constants.EST_YEAR_OF_COMPLETION, searchStudy.getEstimatedYearOfCompletion())); } if (searchStudy.getChiefInvestigator() != null) { studyCriteria.add(Restrictions.ilike(Constants.CHIEF_INVESTIGATOR, searchStudy.getChiefInvestigator(), MatchMode.ANYWHERE)); } if (searchStudy.getContactPerson() != null) { studyCriteria.add(Restrictions.ilike(Constants.CONTACT_PERSON, searchStudy.getContactPerson(), MatchMode.ANYWHERE)); } if (searchStudy.getStudyStatus() != null) { studyCriteria.add(Restrictions.eq("studyStatus", searchStudy.getStudyStatus())); try { StudyStatus status = getStudyStatus("Archive"); studyCriteria.add(Restrictions.ne("studyStatus", status)); } catch (StatusNotAvailableException notAvailable) { log.error("Cannot look up and filter on archive status. Reference data could be missing"); } } else { try { StudyStatus status = getStudyStatus("Archive"); studyCriteria.add(Restrictions.ne("studyStatus", status)); } catch (StatusNotAvailableException notAvailable) { log.error("Cannot look up and filter on archive status. Reference data could be missing"); } } ProjectionList projectionList = Projections.projectionList(); projectionList.add(Projections.groupProperty("study"), "study"); studyCriteria.addOrder(Order.asc("parentStudy")); criteria.setProjection(projectionList); studyList = criteria.list(); return studyList; }