List of usage examples for org.hibernate.criterion DetachedCriteria createAlias
public DetachedCriteria createAlias(String associationPath, String alias)
From source file:com.jaspersoft.jasperserver.api.metadata.common.service.impl.hibernate.HibernateRepositoryServiceImpl.java
License:Open Source License
protected DetachedCriteria translateFilterToCriteria(FilterCriteria filterCriteria) { Class filterClass = filterCriteria == null ? null : filterCriteria.getFilterClass(); Class persistentClass;/*w w w . java 2 s. c o m*/ if (filterClass == null) { persistentClass = RepoResource.class; //persistentClass = RepoOlapUnit.class; } else { persistentClass = getPersistentClassMappings().getImplementationClass(filterClass); } DetachedCriteria criteria; if (persistentClass == null) { criteria = null; } else { criteria = DetachedCriteria.forClass(persistentClass); criteria.createAlias("parent", "parent"); criteria.add(Restrictions.eq("parent.hidden", Boolean.FALSE)); if (filterCriteria != null) { List filterElements = filterCriteria.getFilterElements(); if (!filterElements.isEmpty()) { Conjunction conjunction = Restrictions.conjunction(); HibernateFilter filter = new HibernateFilter(conjunction, this); for (Iterator it = filterElements.iterator(); it.hasNext();) { FilterElement filterElement = (FilterElement) it.next(); filterElement.apply(filter); } criteria.add(conjunction); } } } return criteria; }
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;// w ww . j a v a 2s.c o 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.api.metadata.tenant.service.impl.TenantServiceImpl.java
License:Open Source License
private DetachedCriteria createSearchTenantsCriteria(String parentTenantId, String text) { DetachedCriteria criteria = DetachedCriteria.forClass(persistentTenantClass()); criteria.createAlias("parent", "p"); criteria.add(Restrictions.naturalId().set("p.tenantId", parentTenantId)); if (text != null) { text = databaseCharactersEscapeResolver.getEscapedText(text.trim()); if (text.length() > 0) { Disjunction disjunction = Restrictions.disjunction(); // disjunction.add(Restrictions.ilike("tenantId", "%" + text + "%")); // disjunction.add(Restrictions.ilike("tenantAlias", "%" + text + "%")); // disjunction.add(Restrictions.ilike("tenantName", "%" + text + "%")); // disjunction.add(Restrictions.ilike("tenantDesc", "%" + text + "%")); 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);/*from w ww. j ava 2 s. com*/ } } return criteria; }
From source file:com.jaspersoft.jasperserver.api.metadata.tenant.service.impl.TenantServiceImpl.java
License:Open Source License
public Map<String, Integer> getSubTenantsCountMap(List<String> tenantIds) { if (tenantIds == null || tenantIds.size() == 0) { return Collections.emptyMap(); }//from w w w . j av a2s .co m DetachedCriteria criteria = DetachedCriteria.forClass(persistentTenantClass()); criteria.createAlias("parent", "p"); criteria.add(Restrictions.in("p.tenantId", tenantIds)); criteria.setProjection(Projections.projectionList().add(Projections.rowCount()) .add(Projections.groupProperty("p.tenantId"))); criteria.getExecutableCriteria(getSession()).setCacheable(true); List results = getHibernateTemplate().findByCriteria(criteria); Map<String, Integer> subTenantCounts = new HashMap<String, Integer>(tenantIds.size(), 1); if (results != null && results.size() > 0) { for (Object result : results) { String tenantId = (String) ((Object[]) result)[1]; Integer count = (Integer) ((Object[]) result)[0]; subTenantCounts.put(tenantId, count); } } for (String tenantId : tenantIds) { if (!subTenantCounts.containsKey(tenantId)) { subTenantCounts.put(tenantId, 0); } } return subTenantCounts; }
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());//from ww w . j a va 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(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());//from w ww.ja 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 w w w .j av a2s . 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); }
From source file:com.koylubaevnt.library.db.DataHelper.java
private void createAliases(DetachedCriteria criteria) { criteria.createAlias("b.author", "author"); criteria.createAlias("b.genre", "genre"); criteria.createAlias("b.publisher", "publisher"); }
From source file:com.lohika.alp.reporter.fe.dao.TestDAOImpl.java
License:Open Source License
private DetachedCriteria getFilteredCriteria(TestFilter filter) { DetachedCriteria criteria = DetachedCriteria.forClass(Test.class); criteria.createAlias("suite", "suite"); if (filter.getFrom() != null && filter.getTill() != null) { Calendar c = Calendar.getInstance(); c.setTime(filter.getFrom());/*from ww w.j a v a 2 s.c om*/ c.set(Calendar.HOUR_OF_DAY, c.getActualMinimum(Calendar.HOUR_OF_DAY)); c.set(Calendar.MINUTE, c.getActualMinimum(Calendar.MINUTE)); c.set(Calendar.SECOND, c.getActualMinimum(Calendar.SECOND)); c.set(Calendar.MILLISECOND, c.getActualMinimum(Calendar.MILLISECOND)); Date from = c.getTime(); c.setTime(filter.getTill()); c.set(Calendar.HOUR_OF_DAY, c.getActualMaximum(Calendar.HOUR_OF_DAY)); c.set(Calendar.MINUTE, c.getActualMaximum(Calendar.MINUTE)); c.set(Calendar.SECOND, c.getActualMaximum(Calendar.SECOND)); c.set(Calendar.MILLISECOND, c.getActualMaximum(Calendar.MILLISECOND)); Date till = c.getTime(); criteria.add(Restrictions.between("startDate", from, till)); } if (filter.getTest() != "" && filter.getTest() != null) { try { criteria.add(querytr.translate("name", filter.getTest())); } catch (QueryTranslatorException e) { // TODO Put QueryTranslatorException into log e.printStackTrace(); } } if (filter.getSuite() != "" && filter.getSuite() != null) { try { criteria.add(querytr.translate("suite.name", filter.getSuite())); } catch (QueryTranslatorException e) { // TODO Put QueryTranslatorException into log e.printStackTrace(); } } return criteria; }
From source file:com.lohika.alp.reporter.fe.dao.TestMethodDAOImpl.java
License:Open Source License
private DetachedCriteria getFilteredCriteria(TestMethodFilter filter) { DetachedCriteria criteria = DetachedCriteria.forClass(TestMethod.class); criteria.createAlias("testInstance", "testInstance").createAlias("testInstance.testClass", "testClass") .createAlias("testInstance.test", "test"); if (filter.getFrom() != null && filter.getTill() != null) { Calendar c = Calendar.getInstance(); c.setTime(filter.getFrom());//from www.j a v a 2 s .c o m c.set(Calendar.HOUR_OF_DAY, c.getActualMinimum(Calendar.HOUR_OF_DAY)); c.set(Calendar.MINUTE, c.getActualMinimum(Calendar.MINUTE)); c.set(Calendar.SECOND, c.getActualMinimum(Calendar.SECOND)); c.set(Calendar.MILLISECOND, c.getActualMinimum(Calendar.MILLISECOND)); Date from = c.getTime(); c.setTime(filter.getTill()); c.set(Calendar.HOUR_OF_DAY, c.getActualMaximum(Calendar.HOUR_OF_DAY)); c.set(Calendar.MINUTE, c.getActualMaximum(Calendar.MINUTE)); c.set(Calendar.SECOND, c.getActualMaximum(Calendar.SECOND)); c.set(Calendar.MILLISECOND, c.getActualMaximum(Calendar.MILLISECOND)); Date till = c.getTime(); criteria.add(Restrictions.between("startDate", from.getTime(), till.getTime())); } if (filter.getCl() != "" && filter.getCl() != null) { try { criteria.add(querytr.translate("testClass.name", filter.getCl())); } catch (QueryTranslatorException e) { // TODO Put QueryTranslatorException into log e.printStackTrace(); } } if (filter.getGr() != "" && filter.getGr() != null) { criteria.createAlias("groups", "groups"); try { criteria.add(querytr.translate("groups.name", filter.getGr())); } catch (QueryTranslatorException e) { // TODO Put QueryTranslatorException into log e.printStackTrace(); } } return criteria; }