@Override public Object doInTransaction(TransactionStatus status) { PropertyProjection pipelineName = Projections.property("pipelineName"); Criteria criteria = sessionFactory.getCurrentSession().createCriteria(PipelineState.class).setProjection(pipelineName).add( Restrictions.eq("locked", true)); criteria.setCacheable(false); List<String> list = criteria.list(); return list; } });
protected Criteria getCriteria(Session s) { // should use PassThroughTransformer by default return s.createCriteria( Enrolment.class, "e" ) .setProjection( Projections.property( "e.semester" ) ) .add( Restrictions.eq( "e.studentNumber", shermanEnrolmentExpected.getStudentNumber() ) ); } };
protected Criteria getCriteria(Session s) { // should use PassThroughTransformer by default return s.createCriteria( Enrolment.class ) .setProjection( Projections.property( "student" ) ) .add( Restrictions.eq( "studentNumber", Long.valueOf( yogiExpected.getStudentNumber() ) ) ); } };
private void checkAndRemoveDuplicates(MaterialInstance materialInstance, List<Modification> newChanges, ArrayList<Modification> list) { if (!new SystemEnvironment().get(SystemEnvironment.CHECK_AND_REMOVE_DUPLICATE_MODIFICATIONS)) { return; } DetachedCriteria criteria = DetachedCriteria.forClass(Modification.class); criteria.setProjection(Projections.projectionList().add(Projections.property("revision"))); criteria.add(Restrictions.eq("materialInstance.id", materialInstance.getId())); ArrayList<String> revisions = new ArrayList<>(); for (Modification modification : newChanges) { revisions.add(modification.getRevision()); } criteria.add(Restrictions.in("revision", revisions)); List<String> matchingRevisionsFromDb = (List<String>) getHibernateTemplate().findByCriteria(criteria); if (!matchingRevisionsFromDb.isEmpty()) { for (final String revision : matchingRevisionsFromDb) { Modification modification = list.stream().filter(item -> item.getRevision().equals(revision)).findFirst().orElse(null); list.remove(modification); } } if (!newChanges.isEmpty() && list.isEmpty()) { LOGGER.debug("All modifications already exist in db [{}]", revisions); } if (!matchingRevisionsFromDb.isEmpty()) { LOGGER.info("Saving revisions for material [{}] after removing the following duplicates {}", materialInstance.toOldMaterial(null, null, null).getLongDescription(), matchingRevisionsFromDb); } }
protected Criteria getCriteria(Session s) { return s.createCriteria( Student.class, "s" ) .createAlias( "s.addresses", "a" ) .setProjection( Projections.property( "a.addressType" ) ); } };
protected Criteria getCriteria(Session s) { // should use PassThroughTransformer by default return s.createCriteria( Enrolment.class, "e" ) .setProjection( Projections.property( "e.semester" ) ) .addOrder( Order.asc( "e.studentNumber") ); } };
@Override public List<AssignedProductOptionDTO> findAssignedProductOptionsByProductId(Long productId) { Session session = em.unwrap(Session.class); Criteria criteria = session.createCriteria(SkuProductOptionValueXrefImpl.class); List dtoList = criteria .createAlias("sku", "sku") .createAlias("sku.product", "product") .createAlias("productOptionValue", "productOptionValue") .createAlias("productOptionValue.productOption", "productOption") .setProjection(Projections.distinct( Projections.projectionList() .add(Projections.property("product.id"), "productId") .add(Projections.property("productOption.attributeName"), "productOptionAttrName") .add(Projections.property("productOptionValue"), "productOptionValue") .add(Projections.property("sku"), "sku") ) ).setResultTransformer(Transformers.aliasToBean(AssignedProductOptionDTO.class)) .add(Restrictions.eq("product.id", productId)) .addOrder(Order.asc("productOption.attributeName")).list(); List<AssignedProductOptionDTO> results = new ArrayList<>(); for (Object o : dtoList) { AssignedProductOptionDTO dto = (AssignedProductOptionDTO) o; if (dto.getSku().isActive()) { results.add(dto); } } return results; }
protected Criteria getCriteria(Session s) { return s.createCriteria( Enrolment.class, "e" ) .setProjection( Projections.property( "e.student" ) ) .addOrder( Order.asc( "e.studentNumber") ); } };
protected Criteria getCriteria(Session s) { return s.createCriteria( Enrolment.class, "e" ) .setProjection( Projections.property( "e.student" ).as( "student" ) ) .addOrder( Order.asc( "e.studentNumber") ) .setResultTransformer( Transformers.ALIAS_TO_ENTITY_MAP ); } };
@Test @RequiresDialect( H2Dialect.class ) public void testCaseClause() { doInHibernate( this::sessionFactory, session -> { Criteria criteria = session.createCriteria( TableA.class ); final String TABLE_B_ALIAS = "tableBAlias"; final String TABLE_C_ALIAS = "tableCAlias"; Criterion tableCRestriction = Restrictions.eq( TABLE_C_ALIAS + ".tableCBoolean", false ); criteria.createAlias( TABLE_B_ALIAS + ".tableCs", TABLE_C_ALIAS, JoinType.LEFT_OUTER_JOIN, tableCRestriction ); Criterion tableBRestriction = Restrictions.eq( TABLE_B_ALIAS + ".tableBDate", new Date() ); criteria.createAlias( "tableBs", TABLE_B_ALIAS, JoinType.LEFT_OUTER_JOIN, tableBRestriction ); criteria.add( Restrictions.eq( "tableACharacter", "c" ) ); ProjectionList projectionList = Projections.projectionList(); projectionList.add( Projections.property( "tableACharacter" ) ); criteria.setProjection( projectionList ); criteria.list(); } ); }
protected Criteria getCriteria(Session s) { // should use RootEntityTransformer by default return s.createCriteria( Enrolment.class, "e" ) .createAlias( "e.student", "s", Criteria.LEFT_JOIN ) .setFetchMode( "student", FetchMode.JOIN ) .setFetchMode( "student.preferredCourse", FetchMode.JOIN ) .setProjection( Projections.projectionList() .add( Projections.property( "s.name" ) ) .add( Projections.property( "e.student" ) ) ) .addOrder( Order.asc( "s.studentNumber") ); } };
protected Criteria getCriteria(Session s) throws Exception { return s.createCriteria( Student.class, "s" ) .setProjection( Projections.property( "s.name" ) ) .addOrder( Order.asc( "s.studentNumber" ) ) .setResultTransformer( new AliasToBeanConstructorResultTransformer( getConstructor() ) ); } private Constructor getConstructor() throws NoSuchMethodException {
protected Criteria getCriteria(Session s) throws Exception { return s.createCriteria( Student.class, "s" ) .setProjection( Projections.property( "s.name" ).as( "name" )) .addOrder( Order.asc( "s.studentNumber" ) ) .setResultTransformer( new AliasToBeanConstructorResultTransformer( getConstructor() ) ); } private Constructor getConstructor() throws NoSuchMethodException {
protected Criteria getCriteria(Session s) { return s.createCriteria( Enrolment.class, "e" ) .createAlias( "e.student", "st" ) .createAlias( "e.course", "co" ) .setProjection( Projections.property( "st.name" ).as( "studentName" ) ) .addOrder( Order.asc( "st.studentNumber" ) ) .setResultTransformer( Transformers.aliasToBean( StudentDTO.class ) ); } };
/** * @see org.openmrs.api.db.ConceptDAO#getConceptStopWords(java.util.Locale) */ @Override public List<String> getConceptStopWords(Locale locale) throws DAOException { locale = (locale == null ? Context.getLocale() : locale); Criteria criteria = sessionFactory.getCurrentSession().createCriteria(ConceptStopWord.class); criteria.setProjection(Projections.property("value")); criteria.add(Restrictions.eq("locale", locale)); return (List<String>) criteria.list(); }
/** * @see org.openmrs.api.db.ConceptDAO#getProposedConcepts(java.lang.String) */ @Override @SuppressWarnings("unchecked") public List<Concept> getProposedConcepts(String text) throws DAOException { Criteria crit = sessionFactory.getCurrentSession().createCriteria(ConceptProposal.class); crit.add(Restrictions.ne("state", OpenmrsConstants.CONCEPT_PROPOSAL_UNMAPPED)); crit.add(Restrictions.eq("originalText", text)); crit.add(Restrictions.isNotNull("mappedConcept")); crit.setProjection(Projections.distinct(Projections.property("mappedConcept"))); return crit.list(); }
criteria.setProjection(Projections.property("concept"));
subquery.setProjection(Projections.property("ff.form.formId")); subquery.add(Restrictions.in("ff.formFieldId", anyFormFieldIds)); crit.add(Subqueries.propertyIn("f.formId", subquery));
@Override public Calendar getMostRecentScanTime(Integer channelId) { return (Calendar) sessionFactory .getCurrentSession() .createCriteria(Scan.class) .addOrder(Order.desc("importTime")) .setProjection(Projections.property("importTime")) .setMaxResults(1) .uniqueResult(); } }