List of usage examples for org.hibernate.criterion Projections id
public static IdentifierProjection id()
From source file:org.jpos.qi.EntityContainer.java
License:Open Source License
@Override public List<?> getItemIds(int startIndex, int numberOfItems) { try {//from w w w .ja v a 2s . c o m return (List<?>) DB.exec((db) -> { Criteria crit = getCriteria(db); crit.setProjection(Projections.id()); crit.setFirstResult(startIndex); crit.setFetchSize(numberOfItems); return crit.list(); }); } catch (Exception e) { QI.getQI().getLog().error(e); return null; } }
From source file:org.jpos.qi.EntityContainer.java
License:Open Source License
public Object nextItemId(Object itemId) { if (isLastId(itemId)) return null; int currentIndex = indexOfId(itemId); int firstIndex = normalOrder ? currentIndex + 1 : size() - currentIndex - 1; List<T> buffer = getRowBuffer(); try {//from w w w. j av a 2 s . com int curBufIndex = buffer.indexOf(itemId); if (curBufIndex != -1) { T object = buffer.get(curBufIndex + 1); return getPojoId(object); } } catch (Exception e) { // not in buffer } List<T> newBuffer = null; try { newBuffer = (List<T>) DB.exec((db) -> { Criteria crit = getCriteria(db).setFirstResult(firstIndex).setMaxResults(ROW_BUF_SIZE) .setCacheable(true); crit.setProjection(Projections.id()); return crit.list(); }); } catch (Exception e) { QI.getQI().getLog().error(e); } if (newBuffer.size() > 0) { setRowBuffer(newBuffer, firstIndex); return newBuffer.get(0); } return null; }
From source file:org.jspresso.framework.application.backend.action.persistence.hibernate.QueryEntitiesAction.java
License:Open Source License
/** * Performs actual Query. This method can be overridden by subclasses in order * to deal with non-Hibernate searches./*from ww w. jav a 2 s.co m*/ * * @param queryComponent * the query component. * @param context * the action context * @return the list of retrieved components. */ @Override @SuppressWarnings({ "unchecked", "ConstantConditions" }) public List<?> performQuery(final IQueryComponent queryComponent, final Map<String, Object> context) { Session hibernateSession = ((HibernateBackendController) getController(context)).getHibernateSession(); ICriteriaFactory critFactory = (ICriteriaFactory) queryComponent.get(CRITERIA_FACTORY); if (critFactory == null) { critFactory = getCriteriaFactory(context); queryComponent.put(CRITERIA_FACTORY, critFactory); } EnhancedDetachedCriteria criteria = critFactory.createCriteria(queryComponent, context); List<IEntity> entities; if (criteria == null) { entities = new ArrayList<>(); queryComponent.setRecordCount(0); } else { ICriteriaRefiner critRefiner = (ICriteriaRefiner) queryComponent.get(CRITERIA_REFINER); if (critRefiner == null) { critRefiner = getCriteriaRefiner(context); if (critRefiner != null) { queryComponent.put(CRITERIA_REFINER, critRefiner); } } if (critRefiner != null) { critRefiner.refineCriteria(criteria, queryComponent, context); } Integer totalCount = null; Integer pageSize = queryComponent.getPageSize(); Integer page = queryComponent.getPage(); ResultTransformer refinerResultTransformer = criteria.getResultTransformer(); List<Order> refinerOrders = criteria.getOrders(); if (refinerOrders != null) { criteria.removeAllOrders(); } if (queryComponent.isDistinctEnforced() || queryComponent.getQueryDescriptor().isTranslatable()) { criteria.setProjection(Projections.distinct(Projections.id())); EnhancedDetachedCriteria outerCriteria = EnhancedDetachedCriteria .forEntityName(queryComponent.getQueryContract().getName()); outerCriteria.add(Subqueries.propertyIn(IEntity.ID, criteria)); criteria = outerCriteria; } if (pageSize != null) { if (page == null) { page = 0; queryComponent.setPage(page); } if (queryComponent.getRecordCount() == null) { if (isUseCountForPagination()) { criteria.setProjection(Projections.rowCount()); totalCount = ((Number) criteria.getExecutableCriteria(hibernateSession).list().get(0)) .intValue(); } else { totalCount = IQueryComponent.UNKNOWN_COUNT; } } if (refinerOrders != null) { for (Order order : refinerOrders) { criteria.addOrder(order); } } critFactory.completeCriteriaWithOrdering(criteria, queryComponent, context); if (refinerResultTransformer != null) { criteria.setResultTransformer(refinerResultTransformer); } if (useInListForPagination) { criteria.setProjection(Projections.id()); List<Serializable> entityIds = criteria.getExecutableCriteria(hibernateSession) .setFirstResult(page * pageSize).setMaxResults(pageSize).list(); if (entityIds.isEmpty()) { entities = new ArrayList<>(); } else { criteria = EnhancedDetachedCriteria .forEntityName(queryComponent.getQueryContract().getName()); entities = criteria.add(createEntityIdsInCriterion(entityIds, 500)) .getExecutableCriteria(hibernateSession).list(); Map<Serializable, IEntity> entitiesById = new HashMap<>(); for (IEntity entity : entities) { entitiesById.put(entity.getId(), entity); } entities = new ArrayList<>(); for (Serializable id : entityIds) { IEntity entity = entitiesById.get(id); if (entity != null) { entities.add(entity); } } } } else { entities = criteria.getExecutableCriteria(hibernateSession).setFirstResult(page * pageSize) .setMaxResults(pageSize).list(); } } else { if (refinerOrders != null) { for (Order order : refinerOrders) { criteria.addOrder(order); } } critFactory.completeCriteriaWithOrdering(criteria, queryComponent, context); if (refinerResultTransformer != null) { criteria.setResultTransformer(refinerResultTransformer); } entities = criteria.getExecutableCriteria(hibernateSession).list(); totalCount = entities.size(); } if (totalCount != null) { queryComponent.setRecordCount(totalCount); } } List<String> prefetchProperties = queryComponent.getPrefetchProperties(); if (prefetchProperties != null && entities != null) { // Will load the prefetch properties in the same transaction in order to leverage // Hibernate batch fetching. IAccessorFactory accessorFactory = getAccessorFactory(context); for (String prefetchProperty : prefetchProperties) { for (IEntity entity : entities) { try { accessorFactory.createPropertyAccessor(prefetchProperty, queryComponent.getQueryContract()) .getValue(entity); } catch (Exception e) { LOG.warn("An unexpected exception occurred when pre-fetching property {}", prefetchProperty, e); } } } } return entities; }
From source file:org.libreplan.business.common.daos.GenericDAOHibernate.java
License:Open Source License
public boolean exists(final PK id) { return getSession().createCriteria(entityClass).add(Restrictions.idEq(id)).setProjection(Projections.id()) .uniqueResult() != null;//from ww w . jav a 2 s. com }
From source file:org.linagora.linshare.core.repository.hibernate.ThreadRepositoryImpl.java
License:Open Source License
@Override public List<Thread> searchAmongMembers(User actor, String pattern) { DetachedCriteria det = DetachedCriteria.forClass(Thread.class); det.add(Restrictions.eq("destroyed", false)); Disjunction or = Restrictions.disjunction(); det.createAlias("myMembers", "member2"); det.createAlias("member2.user", "u"); or.add(Restrictions.ilike("u.firstName", pattern, ANYWHERE)); or.add(Restrictions.ilike("u.lastName", pattern, ANYWHERE)); det.add(or);//from w w w .j a va2 s . c o m DetachedCriteria sub = DetachedCriteria.forClass(Thread.class); sub.createAlias("myMembers", "member"); if (!actor.isSuperAdmin()) sub.add(Restrictions.eq("member.user", actor)); sub.setProjection(Projections.id()); det.add(Subqueries.propertyIn("id", sub)); return findByCriteria(det); }
From source file:org.motechproject.server.model.db.hibernate.HibernateMotechDAO.java
License:Open Source License
@SuppressWarnings("unchecked") public List<Obs> getActivePregnanciesDueDateObs(Facility facility, Date fromDueDate, Date toDueDate, Concept pregnancyDueDateConcept, Concept pregnancyConcept, Concept pregnancyStatusConcept, Integer maxResults) {//from www .j a v a 2 s.c o m Session session = sessionFactory.getCurrentSession(); Criteria criteria = session.createCriteria(Obs.class, "o"); criteria.add(Restrictions.eq("o.voided", false)); criteria.add(Restrictions.eq("o.concept", pregnancyDueDateConcept)); if (fromDueDate != null) { criteria.add(Restrictions.ge("o.valueDatetime", fromDueDate)); } if (toDueDate != null) { criteria.add(Restrictions.le("o.valueDatetime", toDueDate)); } criteria.createAlias("o.person", "p"); criteria.add(Restrictions.eq("p.personVoided", false)); criteria.createAlias("o.obsGroup", "g"); criteria.add(Restrictions.eq("g.concept", pregnancyConcept)); criteria.add(Restrictions.eq("g.voided", false)); DetachedCriteria pregnancyActiveCriteria = DetachedCriteria.forClass(Obs.class, "s") .setProjection(Projections.id()).add(Restrictions.eq("s.voided", false)) .add(Restrictions.eq("s.concept", pregnancyStatusConcept)) .add(Restrictions.eq("s.valueNumeric", 1.0)) .add(Restrictions.eqProperty("s.obsGroup.obsId", "g.obsId")) .add(Restrictions.eqProperty("s.person.personId", "p.personId")); criteria.add(Subqueries.exists(pregnancyActiveCriteria)); DetachedCriteria pregnancyInactiveCriteria = DetachedCriteria.forClass(Obs.class, "e") .setProjection(Projections.id()).add(Restrictions.eq("e.voided", false)) .add(Restrictions.eq("e.concept", pregnancyStatusConcept)) .add(Restrictions.eq("e.valueNumeric", 0.0)) .add(Restrictions.eqProperty("e.obsGroup.obsId", "g.obsId")) .add(Restrictions.eqProperty("e.person.personId", "p.personId")); criteria.add(Subqueries.notExists(pregnancyInactiveCriteria)); if (facility != null) { criteria.add(Restrictions.sqlRestriction( "exists (select f.id from motechmodule_facility f " + "inner join motechmodule_facility_patient fp " + "on f.id = fp.facility_id " + "where f.facility_id = ? and fp.patient_id = {alias}.person_id)", facility.getFacilityId(), Hibernate.INTEGER)); } criteria.addOrder(Order.asc("o.valueDatetime")); if (maxResults != null) { criteria.setMaxResults(maxResults); } return criteria.list(); }
From source file:org.motechproject.server.model.db.hibernate.HibernateMotechDAO.java
License:Open Source License
@SuppressWarnings("unchecked") public List<Patient> getPatients(String firstName, String lastName, String preferredName, Date birthDate, Integer facilityId, String phoneNumber, PersonAttributeType phoneNumberAttrType, String nhisNumber, PersonAttributeType nhisAttrType, Integer communityId, String patientId, PatientIdentifierType patientIdType, Integer maxResults) { Criteria criteria = sessionFactory.getCurrentSession().createCriteria(Patient.class, "p"); criteria.createAlias("p.names", "name"); criteria.createAlias("p.identifiers", "id"); criteria.add(Restrictions.eq("p.voided", false)); criteria.add(Restrictions.eq("name.voided", false)); criteria.add(Restrictions.eq("id.voided", false)); if (patientId != null && patientIdType != null) { criteria.add(Restrictions.and(Restrictions.eq("id.identifierType", patientIdType), Restrictions.eq("id.identifier", patientId))); }// w w w . j ava 2s . com Criterion firstNameCriterion = Restrictions.like("name.givenName", firstName, MatchMode.ANYWHERE); Criterion preferredNameCriterion = Restrictions.like("name.givenName", preferredName, MatchMode.ANYWHERE); if (firstName != null && preferredName != null) { criteria.add(Restrictions.or(firstNameCriterion, preferredNameCriterion)); } else if (firstName != null) { criteria.add(firstNameCriterion); } else if (preferredName != null) { criteria.add(preferredNameCriterion); } if (lastName != null) { criteria.add(Restrictions.like("name.familyName", lastName, MatchMode.ANYWHERE)); } if (birthDate != null) { criteria.add(Restrictions.eq("p.birthdate", birthDate)); } if (facilityId != null) { criteria.add(Restrictions.sqlRestriction( "exists (select f.id from motechmodule_facility f " + "inner join motechmodule_facility_patient fp " + "on f.id = fp.facility_id " + "where f.facility_id = ? and fp.patient_id = {alias}.patient_id)", facilityId, Hibernate.INTEGER)); } if (communityId != null) { criteria.add(Restrictions.sqlRestriction( "exists (select c.id from motechmodule_community c " + "inner join motechmodule_community_patient cp " + "on c.id = cp.community_id " + "where c.community_id = ? and cp.patient_id = {alias}.patient_id)", communityId, Hibernate.INTEGER)); } if (nhisNumber != null && nhisAttrType != null) { DetachedCriteria nhisCriteria = DetachedCriteria.forClass(PersonAttribute.class, "nattr") .setProjection(Projections.id()).add(Restrictions.eq("nattr.voided", false)) .add(Restrictions.eqProperty("nattr.person.personId", "p.patientId")) .add(Restrictions.and(Restrictions.eq("nattr.attributeType", nhisAttrType), Restrictions.eq("nattr.value", nhisNumber))); criteria.add(Subqueries.exists(nhisCriteria)); } if (phoneNumber != null && phoneNumberAttrType != null) { DetachedCriteria phoneCriteria = DetachedCriteria.forClass(PersonAttribute.class, "pattr") .setProjection(Projections.id()).add(Restrictions.eq("pattr.voided", false)) .add(Restrictions.eqProperty("pattr.person.personId", "p.patientId")) .add(Restrictions.and(Restrictions.eq("pattr.attributeType", phoneNumberAttrType), Restrictions.eq("pattr.value", phoneNumber))); criteria.add(Subqueries.exists(phoneCriteria)); } criteria.addOrder(Order.asc("name.givenName")); criteria.addOrder(Order.asc("name.familyName")); criteria.addOrder(Order.asc("p.birthdate")); criteria.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY); if (maxResults != null) { criteria.setMaxResults(maxResults); } return criteria.list(); }
From source file:org.mzd.shap.domain.dao.FeatureDaoSpringHibernate.java
License:Open Source License
public List<Feature> findByProjectAndType(final Project project, final FeatureType type, final boolean minimal) { return getHibernateTemplate().execute(new HibernateCallback<List<Feature>>() { @SuppressWarnings("unchecked") public List<Feature> doInHibernate(Session session) throws HibernateException, SQLException { if (minimal) { return session.createCriteria(getPersistentClass()) .setProjection(Projections.projectionList().add(Projections.id(), "id") .add(Projections.property("version"), "version")) .add(Restrictions.eq("type", type)).createCriteria("sequence").createCriteria("sample") .add(Restrictions.eq("project", project)) .setResultTransformer(Transformers.aliasToBean(getPersistentClass())).list(); } else { return session.createCriteria(getPersistentClass()).add(Restrictions.eq("type", type)) .createCriteria("sequence").createCriteria("sample") .add(Restrictions.eq("project", project)).list(); }/*from ww w.j ava 2 s . c om*/ } }); }
From source file:org.mzd.shap.domain.dao.FeatureDaoSpringHibernate.java
License:Open Source License
public List<Feature> findBySampleAndType(final Sample sample, final FeatureType type, final boolean minimal) { return getHibernateTemplate().execute(new HibernateCallback<List<Feature>>() { @SuppressWarnings("unchecked") public List<Feature> doInHibernate(Session session) throws HibernateException, SQLException { if (minimal) { return session.createCriteria(getPersistentClass()) .setProjection(Projections.projectionList().add(Projections.id(), "id") .add(Projections.property("version"), "version")) .add(Restrictions.eq("type", type)).createCriteria("sequence") .add(Restrictions.eq("sample", sample)) .setResultTransformer(Transformers.aliasToBean(getPersistentClass())).list(); } else { return session.createCriteria(getPersistentClass()).add(Restrictions.eq("type", type)) .createCriteria("sequence").add(Restrictions.eq("sample", sample)).list(); }/* w w w .ja v a 2s. co m*/ } }); }
From source file:org.mzd.shap.domain.dao.FeatureDaoSpringHibernate.java
License:Open Source License
public List<Feature> findBySequenceAndType(final Sequence sequence, final FeatureType type, final boolean minimal) { return getHibernateTemplate().execute(new HibernateCallback<List<Feature>>() { @SuppressWarnings("unchecked") public List<Feature> doInHibernate(Session session) throws HibernateException, SQLException { Criteria crit = session.createCriteria(getPersistentClass()) .add(Restrictions.eq("sequence", sequence)).add(Restrictions.eq("type", type)); if (minimal) { crit.setProjection(Projections.projectionList().add(Projections.id(), "id") .add(Projections.property("version"), "version")) .setResultTransformer(Transformers.aliasToBean(getPersistentClass())); }//from w ww . j a v a2s . c o m return crit.list(); } }); }