List of usage examples for org.hibernate.criterion Restrictions like
public static SimpleExpression like(String propertyName, Object value)
From source file:com.jaspersoft.jasperserver.api.metadata.tenant.service.impl.TenantServiceImpl.java
License:Open Source License
private DetachedCriteria createSubTenantsCriteria(RepoTenant parentTenant, String text, int depth) { DetachedCriteria criteria = DetachedCriteria.forClass(persistentTenantClass()); String value = "/%"; if ("/".equals(parentTenant.getTenantUri())) { /* Excluding root parent from sub list. */ criteria.add(Restrictions.ne("tenantId", parentTenant.getTenantId())); } else {// ww w. ja va 2 s.c o m value = parentTenant.getTenantUri() + value; } criteria.add(Restrictions.like("tenantUri", value)); if (depth > 0) { StringBuilder boundary = new StringBuilder(value); for (; depth > 0; depth--) { boundary.append("/%"); } criteria.add(Restrictions.not(Restrictions.like("tenantUri", boundary.toString()))); } if (text != null) { text = databaseCharactersEscapeResolver.getEscapedText(text.trim()); if (text.length() > 0) { Disjunction disjunction = Restrictions.disjunction(); disjunction.add(new IlikeEscapeAwareExpression("tenantId", text, MatchMode.ANYWHERE)); disjunction.add(new IlikeEscapeAwareExpression("tenantAlias", text, MatchMode.ANYWHERE)); disjunction.add(new IlikeEscapeAwareExpression("tenantName", text, MatchMode.ANYWHERE)); disjunction.add(new IlikeEscapeAwareExpression("tenantDesc", text, MatchMode.ANYWHERE)); criteria.add(disjunction); } } return criteria; }
From source file:com.jaspersoft.jasperserver.api.metadata.tenant.service.impl.TenantServiceImpl.java
License:Open Source License
public String getUniqueTenantId(String proposedTenantId) { List similarTenantIdList;/* w w w.ja va 2 s. c o m*/ DetachedCriteria criteria = DetachedCriteria.forClass(persistentTenantClass()); criteria.add(Restrictions.like("tenantId", proposedTenantId + "%").ignoreCase()); criteria.getExecutableCriteria(getSession()).setCacheable(true); List tenantList = getHibernateTemplate().findByCriteria(criteria); if (tenantList.isEmpty()) { similarTenantIdList = Collections.emptyList(); } else { similarTenantIdList = new ArrayList(tenantList.size()); for (int i = 0; i < tenantList.size(); i++) { similarTenantIdList.add(((RepoTenant) tenantList.get(i)).getTenantId()); } } return getUniqueItem(proposedTenantId, similarTenantIdList); }
From source file:com.jaspersoft.jasperserver.api.metadata.tenant.service.impl.TenantServiceImpl.java
License:Open Source License
@Transactional(propagation = Propagation.REQUIRED) public String getUniqueTenantAlias(String proposedAlias) { List similarAliasesAndTenantIdList; DetachedCriteria criteria = DetachedCriteria.forClass(persistentTenantClass()); criteria.add(Restrictions.like("tenantAlias", proposedAlias + "%").ignoreCase()); criteria.getExecutableCriteria(getSession()).setCacheable(true); List tenantAliasesList = getHibernateTemplate().findByCriteria(criteria); if (tenantAliasesList.isEmpty()) { similarAliasesAndTenantIdList = Collections.emptyList(); } else {/*from w w w .j a v a2s. c om*/ similarAliasesAndTenantIdList = new ArrayList(tenantAliasesList.size()); for (int i = 0; i < tenantAliasesList.size(); i++) { similarAliasesAndTenantIdList.add(((RepoTenant) tenantAliasesList.get(i)).getTenantAlias()); } } criteria = DetachedCriteria.forClass(persistentTenantClass()); criteria.add(Restrictions.like("tenantId", proposedAlias + "%")); criteria.getExecutableCriteria(getSession()).setCacheable(true); List tenantIdsList = getHibernateTemplate().findByCriteria(criteria); if (!tenantIdsList.isEmpty()) { if (similarAliasesAndTenantIdList.isEmpty()) { similarAliasesAndTenantIdList = new ArrayList(tenantIdsList.size()); } for (int i = 0; i < tenantIdsList.size(); i++) { similarAliasesAndTenantIdList.add(((RepoTenant) tenantIdsList.get(i)).getTenantId()); } } // Alias should be unique among all tenant IDs and tenant aliases. return getUniqueItem(proposedAlias, similarAliasesAndTenantIdList); }
From source file:com.jaspersoft.jasperserver.api.metadata.tenant.service.impl.TenantServiceImpl.java
License:Open Source License
private int createNumberOfUsersOrRolesCriteria(String tenantId, Class aClass) { Integer rowCount = 0;//ww w . j a va 2 s. co m RepoTenant tenant = getRepoTenant(tenantId, false); if (tenant != null) { DetachedCriteria criteria = DetachedCriteria.forClass(aClass); criteria.createAlias("tenant", "t"); criteria.add(Restrictions.or(Restrictions.eq("t.tenantUri", tenant.getTenantUri()), Restrictions .like("t.tenantUri", tenant.getTenantUri().equals("/") ? "/%" : tenant.getTenantUri() + "/%"))); criteria.setProjection(Projections.count("id")); criteria.getExecutableCriteria(getSession()).setCacheable(true); List results = getHibernateTemplate().findByCriteria(criteria); if (results != null && !results.isEmpty()) { rowCount = (Integer) results.get(0); } } return rowCount; }
From source file:com.jaspersoft.jasperserver.jaxrs.poc.hypermedia.root.ExcludeFolderFilter.java
License:Open Source License
@Override public void applyRestrictions(String type, ExecutionContext context, SearchCriteria criteria) { String alias = criteria.getAlias("parent", "p"); for (String uri : toListOfUrisToExclude(context, criteria)) { // Filter uri criteria.add(Restrictions.ne(alias + ".URI", uri)); // Filter children uris String childrenUrlsExp = (uri.endsWith(Folder.SEPARATOR)) ? uri + "%" : uri + Folder.SEPARATOR + "%"; criteria.add(Restrictions.not(Restrictions.like(alias + ".URI", childrenUrlsExp))); }//from w w w .ja v a 2 s . c o m }
From source file:com.jaspersoft.jasperserver.search.filter.FolderFilter.java
License:Open Source License
protected void addSearchModeFolderRestrictions(SearchCriteria criteria, String folderUri, String alias) { criteria.add(Restrictions.or(Restrictions.like(alias + ".URI", createSubFoldersLikeUri(folderUri)), Restrictions.eq(alias + ".URI", folderUri))); }
From source file:com.jaspersoft.jasperserver.search.filter.FolderFilter.java
License:Open Source License
private void addRoleAccessUrlsRestrictions(SearchCriteria criteria) { String alias = criteria.getAlias("parent", "p"); for (UriDescriptor uriDescriptor : roleAccessUrisResolver.getRestrictedUris()) { String uri = (uriDescriptor.isAbsolute()) ? uriDescriptor.getUri() : roleAccessUrisResolver.getAbsoluteUri(uriDescriptor.getUri()); // Filter uri criteria.add(Restrictions.ne(alias + ".URI", uri)); // Filter children uris String childrenUrlsExp = (uri.endsWith(Folder.SEPARATOR)) ? uri + "%" : uri + Folder.SEPARATOR + "%"; criteria.add(Restrictions.not(Restrictions.like(alias + ".URI", childrenUrlsExp))); }/*from w w w . j av a2 s . c om*/ }
From source file:com.jgeppert.struts2.jquery.grid.showcase.action.JsonOrdersAction.java
License:Apache License
public String execute() { log.debug("Page " + getPage() + " Rows " + getRows() + " Sorting Order " + getSord() + " Index Row :" + getSidx());/*w w w . j a va2 s. c o m*/ log.debug("Search :" + searchField + " " + searchOper + " " + searchString); // Calcalate until rows ware selected int to = (rows * page); // Calculate the first row to read int from = to - rows; // Criteria to Build SQL DetachedCriteria criteria = DetachedCriteria.forClass(Orders.class); if (id != null) { criteria.createAlias("customer", "c"); criteria.add(Restrictions.eq("c.customernumber", id)); } // Handle Search if (searchField != null) { if (searchField.equals("customernumber")) { Integer searchValue = Integer.parseInt(searchString); if (searchOper.equals("eq")) criteria.add(Restrictions.eq("ordernumber", searchValue)); else if (searchOper.equals("ne")) criteria.add(Restrictions.ne("ordernumber", searchValue)); else if (searchOper.equals("lt")) criteria.add(Restrictions.lt("ordernumber", searchValue)); else if (searchOper.equals("gt")) criteria.add(Restrictions.gt("ordernumber", searchValue)); } else if (searchField.equals("status") || searchField.equals("comments")) { if (searchOper.equals("eq")) criteria.add(Restrictions.eq(searchField, searchString)); else if (searchOper.equals("ne")) criteria.add(Restrictions.ne(searchField, searchString)); else if (searchOper.equals("bw")) criteria.add(Restrictions.like(searchField, searchString + "%")); else if (searchOper.equals("cn")) criteria.add(Restrictions.like(searchField, "%" + searchString + "%")); } if (searchField.equals("customer")) { Integer searchValue = Integer.parseInt(searchString); criteria.createAlias("customer", "c"); if (searchOper.equals("eq")) criteria.add(Restrictions.eq("c.customernumber", searchValue)); else if (searchOper.equals("ne")) criteria.add(Restrictions.ne("c.customernumber", searchValue)); else if (searchOper.equals("lt")) criteria.add(Restrictions.lt("c.customernumber", searchValue)); else if (searchOper.equals("gt")) criteria.add(Restrictions.gt("c.customernumber", searchValue)); } } // Count Orders records = ordersDao.countByCriteria(criteria); // Reset count Projection criteria.setProjection(null); criteria.setResultTransformer(Criteria.ROOT_ENTITY); // Handle Order By if (sidx != null && !sidx.equals("")) { if (!sidx.equals("customer")) { if (sord.equals("asc")) criteria.addOrder(Order.asc(sidx)); else criteria.addOrder(Order.desc(sidx)); } else { if (sord.equals("asc")) criteria.addOrder(Order.asc("customer.customernumber")); else criteria.addOrder(Order.desc("customer.customernumber")); } } // Get Customers by Criteria gridModel = ordersDao.findByCriteria(criteria, from, rows); // Set to = max rows if (to > records) to = records; // Calculate total Pages total = (int) Math.ceil((double) records / (double) rows); return SUCCESS; }
From source file:com.jgeppert.struts2.jquery.grid.showcase.action.JsonTableAction.java
License:Apache License
public String execute() { log.debug("Page " + getPage() + " Rows " + getRows() + " Sorting Order " + getSord() + " Index Row :" + getSidx());/* ww w. j a v a 2 s .c o m*/ log.debug("Search :" + searchField + " " + searchOper + " " + searchString); // Calcalate until rows ware selected int to = (rows * page); // Calculate the first row to read int from = to - rows; // Criteria to Build SQL DetachedCriteria criteria = DetachedCriteria.forClass(Customers.class); // Handle Search if (searchField != null) { if (searchField.equals("customernumber")) { Integer searchValue = Integer.parseInt(searchString); if (searchOper.equals("eq")) criteria.add(Restrictions.eq("customernumber", searchValue)); else if (searchOper.equals("ne")) criteria.add(Restrictions.ne("customernumber", searchValue)); else if (searchOper.equals("lt")) criteria.add(Restrictions.lt("customernumber", searchValue)); else if (searchOper.equals("gt")) criteria.add(Restrictions.gt("customernumber", searchValue)); } else if (searchField.equals("country") || searchField.equals("city") || searchField.equals("addressLine1") || searchField.equals("contactfirstname") || searchField.equals("contactlastname") || searchField.equals("customername")) { if (searchOper.equals("eq")) criteria.add(Restrictions.eq(searchField, searchString)); else if (searchOper.equals("ne")) criteria.add(Restrictions.ne(searchField, searchString)); else if (searchOper.equals("bw")) criteria.add(Restrictions.like(searchField, searchString + "%")); else if (searchOper.equals("cn")) criteria.add(Restrictions.like(searchField, "%" + searchString + "%")); } else if (searchField.equals("creditlimit")) { Double searchValue = Double.parseDouble(searchString); if (searchOper.equals("eq")) criteria.add(Restrictions.eq("creditlimit", searchValue)); else if (searchOper.equals("ne")) criteria.add(Restrictions.ne("creditlimit", searchValue)); else if (searchOper.equals("lt")) criteria.add(Restrictions.lt("creditlimit", searchValue)); else if (searchOper.equals("gt")) criteria.add(Restrictions.gt("creditlimit", searchValue)); } if (searchField.equals("employeenumber")) { Integer searchValue = Integer.parseInt(searchString); criteria.createAlias("salesemployee", "se"); if (searchOper.equals("eq")) criteria.add(Restrictions.eq("se.employeenumber", searchValue)); else if (searchOper.equals("ne")) criteria.add(Restrictions.ne("se.employeenumber", searchValue)); else if (searchOper.equals("lt")) criteria.add(Restrictions.lt("se.employeenumber", searchValue)); else if (searchOper.equals("gt")) criteria.add(Restrictions.gt("se.employeenumber", searchValue)); } } // Count Customers records = customersDao.countByCriteria(criteria); // Reset count Projection criteria.setProjection(null); criteria.setResultTransformer(Criteria.ROOT_ENTITY); // Handle Order By if (sidx != null && !sidx.equals("")) { if (!sidx.equals("employeenumber")) { if (sord.equals("asc")) criteria.addOrder(Order.asc(sidx)); else criteria.addOrder(Order.desc(sidx)); } else { if (sord.equals("asc")) criteria.addOrder(Order.asc("salesemployee.employeenumber")); else criteria.addOrder(Order.desc("salesemployee.employeenumber")); } } // Get Customers by Criteria gridModel = customersDao.findByCriteria(criteria, from, rows); // Set to = max rows if (to > records) to = records; // Calculate total Pages total = (int) Math.ceil((double) records / (double) rows); return SUCCESS; }
From source file:com.joey.Fujikom.modules.sys.service.SystemService.java
License:Open Source License
public Page<User> findUser(Page<User> page, User user) { User currentUser = UserUtils.getUser(); DetachedCriteria dc = userDao.createDetachedCriteria(); dc.createAlias("company", "company"); if (user.getCompany() != null && StringUtils.isNotBlank(user.getCompany().getId())) { dc.add(Restrictions.or(Restrictions.eq("company.id", user.getCompany().getId()), Restrictions.like("company.parentIds", "%," + user.getCompany().getId() + ",%"))); }//from www .ja v a 2s . c o m dc.createAlias("office", "office"); if (user.getOffice() != null && StringUtils.isNotBlank(user.getOffice().getId())) { dc.add(Restrictions.or(Restrictions.eq("office.id", user.getOffice().getId()), Restrictions.like("office.parentIds", "%," + user.getOffice().getId() + ",%"))); } // ???? if (!currentUser.isAdmin()) { dc.add(Restrictions.ne("id", "1")); } dc.add(dataScopeFilter(currentUser, "office", "")); if (StringUtils.isNotEmpty(user.getLoginName())) { dc.add(Restrictions.like("loginName", "%" + user.getLoginName() + "%")); } if (StringUtils.isNotEmpty(user.getName())) { dc.add(Restrictions.like("name", "%" + user.getName() + "%")); } dc.add(Restrictions.eq(User.FIELD_DEL_FLAG, User.DEL_FLAG_NORMAL)); if (!StringUtils.isNotEmpty(page.getOrderBy())) { dc.addOrder(Order.asc("company.code")).addOrder(Order.asc("office.code")).addOrder(Order.desc("name")); } return userDao.find(page, dc); }