/** * Adds a projection to this list of projections after wrapping it with an alias * * @param projection The projection to add * @param alias The alias to apply to the projection * * @return {@code this}, for method chaining * * @see Projections#alias */ public ProjectionList add(Projection projection, String alias) { return add( Projections.alias( projection, alias ) ); }
protected Criteria getCriteria(Session s) { // should use PassThroughTransformer by default return s.createCriteria( Enrolment.class ) .setProjection( Projections.projectionList() .add( Property.forName( "student" ) ) .add( Property.forName( "semester" ) ) .add( Property.forName( "year" ) ) .add( Property.forName( "course" ) ) ) .add( Restrictions.eq( "studentNumber", Long.valueOf( shermanEnrolmentExpected.getStudentNumber() ) ) ); } };
protected Criteria getCriteria(Session s) { // should use PassThroughTransformer by default return s.createCriteria( Enrolment.class, "e" ) .setProjection( Projections.projectionList() .add( Property.forName( "e.student" ) ) .add( Property.forName( "e.semester" ) ) .add( Property.forName( "e.year" ) ) .add( Property.forName( "e.course" ) ) ) .addOrder( Order.asc( "e.studentNumber") ); } };
protected Criteria getCriteria(Session s) { return s.createCriteria( Enrolment.class, "e" ) .setProjection( Projections.projectionList() .add( Property.forName( "e.student" ), "student" ) .add( Property.forName( "e.semester" ), "semester" ) .add( Property.forName( "e.year" ), "year" ) .add( Property.forName( "e.course" ), "course" ) ) .addOrder( Order.asc( "studentNumber") ) .setResultTransformer( Transformers.ALIAS_TO_ENTITY_MAP ); } };
protected Criteria getCriteria(Session s) { return s.createCriteria( Enrolment.class, "e" ) .setProjection( Projections.projectionList() .add( Property.forName( "e.student" ), "student" ) .add( Property.forName( "e.semester" ) ) .add( Property.forName( "e.year" ) ) .add( Property.forName( "e.course" ), "course" ) ) .addOrder( Order.asc( "e.studentNumber") ) .setResultTransformer( Transformers.ALIAS_TO_ENTITY_MAP ); } };
protected Criteria getCriteria(Session s) { return s.createCriteria( Enrolment.class ) .setProjection( Projections.projectionList() .add( Projections.min( "studentNumber" ).as( "minStudentNumber" ) ) .add( Projections.max( "studentNumber" ).as( "maxStudentNumber" ) ) ) .setResultTransformer( Transformers.ALIAS_TO_ENTITY_MAP ); } };
protected Criteria getCriteria(Session s) { // should use PassThroughTransformer by default return s.createCriteria( Enrolment.class, "e" ) .setProjection( Projections.projectionList() .add( Property.forName( "e.student" ).as( "st" ) ) .add( Property.forName( "e.semester" ).as("sem" ) ) .add( Property.forName( "e.year" ).as( "yr" ) ) .add( Property.forName( "e.course" ).as( "c" ) ) ) .addOrder( Order.asc( "e.studentNumber") ); } };
protected Criteria getCriteria(Session s) { return s.createCriteria( Enrolment.class, "e" ) .createAlias( "e.student", "st" ) .createAlias( "e.course", "co" ) .setProjection( Projections.projectionList() .add( Property.forName( "st.name" ) ) .add( Property.forName( "co.description" ) ) ) .addOrder( Order.asc( "e.studentNumber" ) ); } };
protected Criteria getCriteria(Session s) { return s.createCriteria( Student.class, "s" ) .setProjection( Projections.projectionList() .add( Property.forName( "s.studentNumber" ).as( "studentNumber" )) .add( Property.forName( "s.name" ).as( "name" ) ) ) .addOrder( Order.asc( "s.studentNumber" ) ) .setResultTransformer( Transformers.TO_LIST ); } };
@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) { return s.createCriteria( Student.class, "s" ) .setProjection( Projections.projectionList() .add( Property.forName( "s.studentNumber" ).as( "sNumber" ) ) .add( Property.forName( "s.name" ).as( "sName" ) ) ) .addOrder( Order.asc( "s.studentNumber" ) ) .setResultTransformer( Transformers.ALIAS_TO_ENTITY_MAP ); } };
protected Criteria getCriteria(Session s) { return s.createCriteria( Student.class, "s" ) .setProjection( Projections.projectionList() .add( Property.forName( "s.studentNumber" ).as( "sNumber" ) ) .add( Property.forName( "s.name" ).as( "sName" ) ) ) .addOrder( Order.asc( "s.studentNumber" ) ) .setResultTransformer( Transformers.ALIAS_TO_ENTITY_MAP ); } };
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) { return s.createCriteria( Enrolment.class, "e" ) .createAlias( "e.student", "st" ) .createAlias( "e.course", "co" ) .setProjection( Projections.projectionList() .add( Property.forName( "st.name" ).as( "studentName" ) ) .add( Property.forName( "st.studentNumber" ) ) .add( Property.forName( "co.description" ).as( "courseDescription" ) ) ) .addOrder( Order.asc( "e.studentNumber" ) ) .setResultTransformer( Transformers.aliasToBean( StudentDTO.class ) ); } };
protected Criteria getCriteria(Session s) throws Exception { return s.createCriteria( Student.class, "s" ) .setProjection( Projections.projectionList() .add( Projections.sqlProjection( "555 as studentNumber", new String[]{ "studentNumber" }, new Type[] { StandardBasicTypes.LONG } ) ) .add( Property.forName( "s.name" ).as( "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.projectionList() .add( Property.forName( "s.studentNumber" ).as( "studentNumber" )) .add( Property.forName( "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( Student.class, "s" ) .setProjection( Projections.projectionList() .add( Property.forName( "s.studentNumber" ).as( "studentNumber" ) ) .add( Property.forName( "s.name" ).as( "name" ) ) ) .addOrder( Order.asc( "s.studentNumber" ) ) .setResultTransformer( new AliasToBeanConstructorResultTransformer( getConstructor() ) ); } private Constructor getConstructor() {
protected Criteria getCriteria(Session s) { return s.createCriteria( Enrolment.class, "e" ) .createAlias( "e.student", "st" ) .createAlias( "e.course", "co" ) .setProjection( Projections.projectionList() .add( Property.forName( "st.name" ).as( "studentName" ) ) .add( Property.forName( "co.description" ).as( "courseDescription" ) ) ) .addOrder( Order.asc( "e.studentNumber" ) ) .setResultTransformer( Transformers.aliasToBean( StudentDTO.class ) ); } };
protected Criteria getCriteria(Session s) { return s.createCriteria( Enrolment.class, "e" ) .createAlias( "e.student", "st" ) .createAlias( "e.course", "co" ) .setProjection( Projections.projectionList() .add( Property.forName( "st.name" ).as( "studentName" ) ) .add( Projections.sqlProjection( "'lame description' as courseDescription", new String[] { "courseDescription" }, new Type[] { StandardBasicTypes.STRING } ) ) ) .addOrder( Order.asc( "e.studentNumber" ) ) .setResultTransformer( Transformers.aliasToBean( StudentDTO.class ) ); } };