List of usage examples for org.hibernate.criterion Projections id
public static IdentifierProjection id()
From source file:ar.com.zauber.commons.repository.SpringHibernateRepository.java
License:Apache License
/** @see Repository#find(Query) */ @SuppressWarnings("unchecked") public final <T extends Persistible> List<T> find(final Query<T> query) { CriteriaSpecification criteria = getCriteriaSpecification(null, query, false); final SimpleQuery<T> simpleQuery = (SimpleQuery<T>) query; Criteria aCriteria;//from w w w . j a v a2 s . c o m // TODO Esto debera ir en el metodo que hace getCriteriaSpecification // pero como no tiene DetachedCriteria posibilidad de setearle valores // para paginacin hubo que hacerlo as. if (simpleQuery.getPaging() != null) { int firstResult = (simpleQuery.getPaging().getPageNumber() - 1) * simpleQuery.getPaging().getResultsPerPage(); DetachedCriteria idsDetachedCriteria = (DetachedCriteria) criteria; idsDetachedCriteria.setProjection(Projections.id()); Criteria idsCriteria = idsDetachedCriteria.getExecutableCriteria(this.getSession()); idsCriteria.setCacheable(query.getCacheable()); idsCriteria.setFirstResult(firstResult); idsCriteria.setMaxResults(simpleQuery.getPaging().getResultsPerPage()); // Se hace primero el select de los IDs y luego el de los objetos en // si ya que de otra manera en aquellos casos que haya objetos // que tienen colecciones cuenta los mismos varias veces haciendo // que se devuelvan menos resultados. List<Long> ids = idsCriteria.list(); DetachedCriteria theCriteria = (DetachedCriteria) getCriteriaSpecification(null, query, false); if (ids.isEmpty()) { return new ArrayList<T>(); } theCriteria.add(Restrictions.in("id", ids)); aCriteria = theCriteria.getExecutableCriteria(this.getSession()); } else { aCriteria = ((DetachedCriteria) criteria).getExecutableCriteria(this.getSession()); } aCriteria.setCacheable(query.getCacheable()); return aCriteria.list(); }
From source file:au.org.theark.core.dao.StudyDao.java
License:Open Source License
private Criteria buildGeneralSubjectCriteria(SubjectVO subjectVO) { Criteria criteria = getSession().createCriteria(LinkSubjectStudy.class); criteria.createAlias("person", "p"); if (subjectVO.getLinkSubjectStudy().getStudy() != null) { criteria.add(Restrictions.eq("study.id", subjectVO.getLinkSubjectStudy().getStudy().getId())); } else {/*from w ww . j av a2 s . c om*/ criteria.add(Restrictions.in("study", subjectVO.getStudyList())); criteria.createAlias("study", "st"); criteria.addOrder(Order.asc("st.name")); } if (subjectVO.getLinkSubjectStudy().getPerson() != null) { if (subjectVO.getLinkSubjectStudy().getPerson().getId() != null) { criteria.add(Restrictions.eq("p.id", subjectVO.getLinkSubjectStudy().getPerson().getId())); } if (subjectVO.getLinkSubjectStudy().getPerson().getFirstName() != null) { criteria.add(Restrictions.ilike("p.firstName", subjectVO.getLinkSubjectStudy().getPerson().getFirstName(), MatchMode.ANYWHERE)); } if (subjectVO.getLinkSubjectStudy().getPerson().getMiddleName() != null) { criteria.add(Restrictions.ilike("p.middleName", subjectVO.getLinkSubjectStudy().getPerson().getMiddleName(), MatchMode.ANYWHERE)); } if (subjectVO.getLinkSubjectStudy().getPerson().getLastName() != null) { /* old code pre George adding personlastname lookup criteria.add(Restrictions.ilike("p.lastName", subjectVO.getLinkSubjectStudy().getPerson().getLastName(), MatchMode.ANYWHERE));*/ //log.info("Lastname: " + subjectVO.getLinkSubjectStudy().getPerson().getLastName()); DetachedCriteria previousLastNames = DetachedCriteria.forClass(PersonLastnameHistory.class, "l") .setProjection(Projections.property("l.lastName")) .add(Restrictions.ilike("l.lastName", subjectVO.getLinkSubjectStudy().getPerson().getLastName(), MatchMode.ANYWHERE)) .add(Restrictions.eqProperty("p.id", "l.person.id")); criteria.add(Restrictions.or(Restrictions.ilike("p.lastName", subjectVO.getLinkSubjectStudy().getPerson().getLastName(), MatchMode.ANYWHERE), Subqueries.exists(previousLastNames))); } if (subjectVO.getLinkSubjectStudy().getPerson().getDateOfBirth() != null) { criteria.add(Restrictions.eq("p.dateOfBirth", subjectVO.getLinkSubjectStudy().getPerson().getDateOfBirth())); } if (subjectVO.getLinkSubjectStudy().getPerson().getGenderType() != null) { criteria.add(Restrictions.eq("p.genderType.id", subjectVO.getLinkSubjectStudy().getPerson().getGenderType().getId())); } if (subjectVO.getLinkSubjectStudy().getPerson().getVitalStatus() != null) { criteria.add(Restrictions.eq("p.vitalStatus.id", subjectVO.getLinkSubjectStudy().getPerson().getVitalStatus().getId())); } if (!subjectVO.getLinkSubjectStudy().getPerson().getOtherIDs().isEmpty()) { OtherID o = (OtherID) subjectVO.getLinkSubjectStudy().getPerson().getOtherIDs().toArray()[0]; if (o != null && o.getOtherID() != null && !o.getOtherID().isEmpty()) { log.info("OtherID search"); // DetachedCriteria otherID = DetachedCriteria.forClass(OtherID.class, "O") // .setProjection(Projections.projectionList().add(Projections.property("O.otherID"))) // .add(Restrictions.ilike("O.otherID", ((OtherID) subjectVO.getLinkSubjectStudy().getPerson().getOtherIDs().toArray()[0]).getOtherID(), MatchMode.EXACT)) // .add(Restrictions.eqProperty("p.id", "O.person.id")); // criteria.add(Subqueries.exists(otherID)); criteria.createAlias("p.otherIDs", "o"); criteria.add(Restrictions.ilike("o.otherID", ((OtherID) subjectVO.getLinkSubjectStudy().getPerson().getOtherIDs().toArray()[0]) .getOtherID(), MatchMode.ANYWHERE)); criteria.setProjection(Projections.distinct( Projections.projectionList().add(Projections.property("o.personid"), "lss.person.id"))); } } } if (subjectVO.getLinkSubjectStudy().getSubjectUID() != null && subjectVO.getLinkSubjectStudy().getSubjectUID().length() > 0) { criteria.add(Restrictions.ilike("subjectUID", subjectVO.getLinkSubjectStudy().getSubjectUID(), MatchMode.ANYWHERE)); } if (subjectVO.getLinkSubjectStudy().getSubjectStatus() != null) { criteria.add(Restrictions.eq("subjectStatus", subjectVO.getLinkSubjectStudy().getSubjectStatus())); SubjectStatus subjectStatus = getSubjectStatus("Archive"); if (subjectStatus != null) { criteria.add(Restrictions.ne("subjectStatus", subjectStatus)); } } else { SubjectStatus subjectStatus = getSubjectStatus("Archive"); if (subjectStatus != null) { criteria.add(Restrictions.ne("subjectStatus", subjectStatus)); } } if (subjectVO.getRelativeUIDs().size() > 0) { criteria.add(Restrictions.not(Restrictions.in("subjectUID", subjectVO.getRelativeUIDs().toArray()))); } criteria.setProjection(Projections.distinct(Projections.projectionList().add(Projections.id()))); criteria.addOrder(Order.asc("subjectUID")); return criteria; }
From source file:br.al.contractmanager.dao.UsuarioDao.java
@Transactional(readOnly = true) public int count() { Session session = sessionFactory.getCurrentSession(); try {// w w w. jav a 2s. c o m Criteria criteria = session.createCriteria(Usuario.class); criteria.setProjection(Projections.distinct(Projections.id())); return ((Long) criteria.setProjection(Projections.rowCount()).uniqueResult()).intValue(); } catch (HibernateException e) { System.out.println(e.getMessage()); return 0; } }
From source file:br.al.contractmanager.dao.UsuarioDao.java
@Transactional(readOnly = true) public int count(String termo) { Session session = sessionFactory.getCurrentSession(); try {//from w w w. ja v a 2 s. co m Criteria criteria = session.createCriteria(Usuario.class); criteria.add(Restrictions.or(Restrictions.eq("matricula", termo), Restrictions.like("nomeUsuario", termo, MatchMode.ANYWHERE).ignoreCase(), Restrictions.like("nomeCompleto", termo, MatchMode.ANYWHERE).ignoreCase())) .setProjection(Projections.distinct(Projections.id())); return ((Long) criteria.setProjection(Projections.rowCount()).uniqueResult()).intValue(); } catch (HibernateException e) { System.out.println(e.getMessage()); return 0; } }
From source file:br.com.sales.compra.DAO.DAO.java
public VO getId(VO vo) { Criteria criteria = s.createCriteria(classe); ProdutoVO id = (ProdutoVO) criteria.setProjection(Projections.id()).uniqueResult(); return (VO) id; }
From source file:co.utb.softeng.contactsapp.dao.impl.CitaDAOImpl.java
@Override public List<Cita> getByContactName(String contactName) { DetachedCriteria subQuery = DetachedCriteria.forClass(Contact.class).createCriteria("citas") .add(Restrictions.ilike("name", contactName, MatchMode.ANYWHERE)).setProjection(Projections.id()); Criteria mainCriteria = getSession().createCriteria(Cita.class).add(Subqueries.propertyIn("id", subQuery)) .setFetchMode("contacts", FetchMode.JOIN); return mainCriteria.list(); }
From source file:co.utb.softeng.contactsapp.dao.impl.ContactDAOImpl.java
@Override public List<Contact> getByCitaName(String citaName) { Criterion crit1 = Restrictions.ilike("asunto", citaName, MatchMode.ANYWHERE); Criterion crit2 = Restrictions.ilike("lugar", citaName, MatchMode.ANYWHERE); DetachedCriteria subQuery = DetachedCriteria.forClass(Contact.class).createCriteria("citas") .add(Restrictions.or(crit1, crit2)).setProjection(Projections.id()); Criteria mainCriteria = getSession().createCriteria(Contact.class) .add(Subqueries.propertyIn("id", subQuery)).setFetchMode("citas", FetchMode.JOIN); return mainCriteria.list(); }
From source file:com.arg.arsoft.siantluis.repository.imp.CustomerRepository.java
@Override public Map findByQuery(CustomerQuery query) { int pageSize = Configs.PAGE_SIZE; Criteria criteria = factory.getCurrentSession().createCriteria(Customer.class); if (query.getCode() != null && !query.getCode().equals("")) { if (query.getCode().contains("*") || query.getCode().contains("?")) { criteria.add(Expression.like("code", query.getCode().replace("*", "%").replace("?", "_"))); } else {/*from ww w .java2 s .c o m*/ criteria.add(Expression.eq("code", query.getCode())); } } if (query.getName() != null && !query.getName().equals("")) { if (query.getName().contains("*") || query.getName().contains("?")) { criteria.add(Expression.like("name", query.getName().replace("*", "%").replace("?", "_"))); } else { criteria.add(Expression.eq("name", query.getName())); } } if (query.getCompany() != null && !query.getCompany().equals("")) { if (query.getCompany().contains("*") || query.getCompany().contains("?")) { criteria.add(Expression.like("company", query.getCompany().replace("*", "%").replace("?", "_"))); } else { criteria.add(Expression.eq("company", query.getCompany())); } } if (query.getContactName() != null && !query.getContactName().equals("")) { if (query.getContactName().contains("*") || query.getContactName().contains("?")) { criteria.add(Expression.like("contact.contactName", query.getContactName().replace("*", "%").replace("?", "_"))); } else { criteria.add(Expression.eq("contact.contactName", query.getContactName())); } } if (query.getProvince() != null && query.getProvince() != 0) { criteria.createAlias("address.province", "p", JoinType.LEFT_OUTER_JOIN); criteria.add(Expression.eq("p.id", query.getProvince())); } List<CustomerType> types = new ArrayList<CustomerType>(); if (query.getFlagCompany().equals("Y")) { types.add(CustomerType.C); } if (query.getFlagPersonal().equals("Y")) { types.add(CustomerType.P); } if (types.size() > 0) { criteria.add(Expression.in("customerType", types.toArray())); } long totalRecord = (long) criteria.setProjection(Projections.count(Projections.id().toString())) .uniqueResult(); criteria.setProjection(null); int start = ((query.getPage() - 1) * pageSize); criteria.setFetchMode("address.province", FetchMode.JOIN); criteria.setFetchMode("address.amphur", FetchMode.JOIN); List<Customer> result = criteria.setFirstResult(start).setMaxResults(pageSize) .setResultTransformer(Criteria.ROOT_ENTITY).list(); long totalPage = totalRecord / pageSize; if ((totalRecord % pageSize) > 0) { totalPage++; } List<Integer> pages = new ArrayList<Integer>(); for (int index = 1; index <= totalPage; index++) { pages.add(index); } Map data = new HashMap(); data.put("list", result); data.put("totalPage", totalPage); data.put("totalRecord", totalRecord); data.put("pages", pages); System.out.println(pages.size()); return data; }
From source file:com.arg.arsoft.siantluis.repository.imp.EmployeeRepository.java
@Override public Map findByQuery(EmployeeQuery query) { Session session = factory.getCurrentSession(); Criteria criteria = session.createCriteria(Employee.class); if (query.getCode() != null && !query.getCode().equals("")) { if (query.getCode().contains("*") || query.getCode().contains("?")) { criteria.add(Expression.like("code", query.getCode().replace("*", "%").replace("?", "_"))); } else {// ww w .ja va2 s. c o m criteria.add(Expression.eq("code", query.getCode())); } } if (query.getFirstName() != null && !query.getFirstName().equals("")) { if (query.getFirstName().contains("*") || query.getFirstName().contains("?")) { criteria.add( Expression.like("firstName", query.getFirstName().replace("*", "%").replace("?", "_"))); } else { criteria.add(Expression.eq("firstName", query.getFirstName())); } } if (query.getLastName() != null && !query.getLastName().equals("")) { if (query.getLastName().contains("*") || query.getLastName().contains("?")) { criteria.add(Expression.like("lastName", query.getLastName().replace("*", "%").replace("?", "_"))); } else { criteria.add(Expression.eq("lastName", query.getLastName())); } } long totalRecord = (long) criteria.setProjection(Projections.count(Projections.id().toString())) .uniqueResult(); long totalPage = totalRecord / Configs.PAGE_SIZE; if ((totalRecord % Configs.PAGE_SIZE) > 0) { totalPage++; } criteria.setProjection(null); int start = ((query.getPage() - 1) * Configs.PAGE_SIZE);//+ 1; List<Employee> result = criteria.setFetchMode("title", FetchMode.JOIN) .setFetchMode("position", FetchMode.JOIN).setFirstResult(start).setMaxResults(Configs.PAGE_SIZE) .setResultTransformer(Criteria.ROOT_ENTITY).list(); List<Integer> pages = new ArrayList<Integer>(); for (int index = 1; index <= totalPage; index++) { pages.add(index); } Map data = new HashMap(); data.put("list", result); data.put("totalPage", totalPage); data.put("totalRecord", totalRecord); data.put("pages", pages); System.out.println(pages.size()); return data; }
From source file:com.arg.arsoft.siantluis.repository.imp.OrderRepository.java
@Override public Map findByQuery(OrderQuery query) { int pageSize = Configs.PAGE_SIZE; Criteria criteria = factory.getCurrentSession().createCriteria(Order.class); if (query.getCode() != null && !query.getCode().equals("")) { if (query.getCode().contains("*") || query.getCode().contains("?")) { criteria.add(Restrictions.like("code", query.getCode().replace("*", "%").replace("?", "_"))); } else {/*w w w .j a va 2 s.c o m*/ criteria.add(Restrictions.eq("code", query.getCode())); } } if (query.getName() != null && !query.getName().equals("")) { if (query.getName().contains("*") || query.getName().contains("?")) { criteria.add(Restrictions.like("name", query.getName().replace("*", "%").replace("?", "_"))); } else { criteria.add(Restrictions.eq("name", query.getName())); } } if (query.getEmployee() != null && !query.getEmployee().equals("")) { criteria.createAlias("requestBy", "e", JoinType.LEFT_OUTER_JOIN); criteria.add(Restrictions.eq("e.code", query.getCode())); } if (query.getCustomer() != null && !query.getCustomer().equals("")) { criteria.createAlias("customer", "c", JoinType.LEFT_OUTER_JOIN); criteria.add(Restrictions.eq("c.code", query.getCustomer())); } if (query.getShipper() != null && query.getShipper() != 0) { criteria.createAlias("shipper", "s", JoinType.LEFT_OUTER_JOIN); criteria.add(Restrictions.eq("s.id", query.getShipper())); } if (query.getOrderDateStart() != null) { criteria.add(Restrictions.ge("orderDate", query.getOrderDateStart())); } if (query.getOrderDateEnd() != null) { criteria.add(Restrictions.le("orderDate", query.getOrderDateEnd())); } if (query.getRequireDateStart() != null) { criteria.add(Restrictions.ge("requireDate", query.getRequireDateStart())); } if (query.getRequireDateEnd() != null) { criteria.add(Restrictions.le("requireDate", query.getRequireDateEnd())); } long totalRecord = (long) criteria.setProjection(Projections.count(Projections.id().toString())) .uniqueResult(); int start = ((query.getPage() - 1) * pageSize); criteria.setProjection(null); criteria.setFetchMode("requestBy", FetchMode.JOIN); criteria.setFetchMode("approveBy", FetchMode.JOIN); criteria.setFetchMode("customer", FetchMode.JOIN); criteria.setFetchMode("shipper", FetchMode.JOIN); criteria.setFetchMode("address.amphur", FetchMode.JOIN); criteria.setFetchMode("address.province", FetchMode.JOIN); List<Order> result = criteria.setFirstResult(start).setMaxResults(pageSize) .setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY).list(); long totalPage = totalRecord / pageSize; if ((totalRecord % pageSize) > 0) { totalPage++; } List<Integer> pages = new ArrayList<Integer>(); for (int index = 1; index <= totalPage; index++) { pages.add(index); } Map data = new HashMap(); data.put("list", result); data.put("totalPage", totalPage); data.put("totalRecord", totalRecord); data.put("pages", pages); return data; }