@Override public String toSqlString(Criteria criteria, CriteriaQuery criteriaQuery) throws HibernateException { final String[] columns = criteriaQuery.findColumns( propertyName, criteria ); final Type type = criteriaQuery.getTypeUsingProjection( criteria, propertyName ); final StringBuilder fragment = new StringBuilder(); if ( columns.length > 1 ) { fragment.append( '(' ); } final SessionFactoryImplementor factory = criteriaQuery.getFactory(); final int[] sqlTypes = type.sqlTypes( factory ); for ( int i = 0; i < columns.length; i++ ) { final boolean lower = ignoreCase && (sqlTypes[i] == Types.VARCHAR || sqlTypes[i] == Types.CHAR || sqlTypes[i] == Types.NVARCHAR || sqlTypes[i] == Types.NCHAR); if ( lower ) { fragment.append( factory.getDialect().getLowercaseFunction() ).append( '(' ); } fragment.append( columns[i] ); if ( lower ) { fragment.append( ')' ); } fragment.append( getOp() ).append( "?" ); if ( i < columns.length - 1 ) { fragment.append( " and " ); } } if ( columns.length > 1 ) { fragment.append( ')' ); } return fragment.toString(); }
@Override public TypedValue[] getTypedValues(Criteria criteria, CriteriaQuery criteriaQuery) { final ArrayList<TypedValue> list = new ArrayList<TypedValue>(); final Type type = criteriaQuery.getTypeUsingProjection( criteria, propertyName ); if ( type.isComponentType() ) { final CompositeType compositeType = (CompositeType) type; final Type[] subTypes = compositeType.getSubtypes(); for ( Object value : values ) { for ( int i = 0; i < subTypes.length; i++ ) { final Object subValue = value == null ? null : compositeType.getPropertyValues( value, EntityMode.POJO )[i]; list.add( new TypedValue( subTypes[i], subValue ) ); } } } else { for ( Object value : values ) { list.add( criteriaQuery.getTypedValue( criteria, propertyName, value ) ); } } return list.toArray( new TypedValue[ list.size() ] ); }
final Type type = criteriaQuery.getTypeUsingProjection( criteria, propertyName ); final SessionFactoryImplementor factory = criteriaQuery.getFactory(); final int[] sqlTypes = type.sqlTypes( factory );
public String toSqlString(Criteria criteria, CriteriaQuery criteriaQuery) throws HibernateException { String[] columns = criteriaQuery.getColumnsUsingProjection(criteria, propertyName); Type type = criteriaQuery.getTypeUsingProjection(criteria, propertyName); StringBuffer fragment = new StringBuffer(); for (int i = 0; i < columns.length; i++) { SessionFactoryImplementor factory = criteriaQuery.getFactory(); fragment.append("customOrder"); fragment.append("("); boolean lower = ignoreCase && type.sqlTypes(factory)[i] == Types.VARCHAR; if (lower) { fragment.append(factory.getDialect().getLowercaseFunction()) .append('('); } fragment.append(columns[i]); if (lower) fragment.append(')'); fragment.append(")"); fragment.append(ascending ? " asc" : " desc"); if (i < columns.length - 1) fragment.append(", "); } return fragment.toString(); }
public String toSqlString(Criteria criteria, CriteriaQuery criteriaQuery) throws HibernateException { String[] columns = criteriaQuery.getColumnsUsingProjection(criteria, propertyName); Type type = criteriaQuery.getTypeUsingProjection(criteria, propertyName); StringBuffer fragment = new StringBuffer(); if (columns.length>1) fragment.append('('); SessionFactoryImplementor factory = criteriaQuery.getFactory(); int[] sqlTypes = type.sqlTypes( factory ); for ( int i=0; i<columns.length; i++ ) { boolean lower = ignoreCase && ( sqlTypes[i]==Types.VARCHAR || sqlTypes[i]==Types.CHAR ); if (lower) { fragment.append( factory.getDialect().getLowercaseFunction() ) .append('('); } fragment.append( columns[i] ); if (lower) fragment.append(')'); fragment.append( getOp() ).append("?"); if ( i<columns.length-1 ) fragment.append(" and "); } if (columns.length>1) fragment.append(')'); return fragment.toString(); }
/** * Render the SQL fragment * */ public String toSqlString(Criteria criteria, CriteriaQuery criteriaQuery) throws HibernateException { String[] columns = criteriaQuery.getColumnsUsingProjection(criteria, propertyName); Type type = criteriaQuery.getTypeUsingProjection(criteria, propertyName); StringBuffer fragment = new StringBuffer(); for ( int i=0; i<columns.length; i++ ) { SessionFactoryImplementor factory = criteriaQuery.getFactory(); boolean lower = ignoreCase && type.sqlTypes( factory )[i]==Types.VARCHAR; if (lower) { fragment.append( factory.getDialect().getLowercaseFunction() ) .append('('); } fragment.append( columns[i] ); if (lower) fragment.append(')'); fragment.append( ascending ? " asc" : " desc" ); if ( i<columns.length-1 ) fragment.append(", "); } return fragment.toString(); }
/** * Render the SQL fragment * */ public String toSqlString(Criteria criteria, CriteriaQuery criteriaQuery) throws HibernateException { String[] columns = criteriaQuery.getColumnsUsingProjection(criteria, propertyName); Type type = criteriaQuery.getTypeUsingProjection(criteria, propertyName); StringBuffer fragment = new StringBuffer(); for ( int i=0; i<columns.length; i++ ) { SessionFactoryImplementor factory = criteriaQuery.getFactory(); boolean lower = ignoreCase && type.sqlTypes( factory )[i]==Types.VARCHAR; if (lower) { fragment.append( factory.getDialect().getLowercaseFunction() ) .append('('); } fragment.append( columns[i] ); if (lower) fragment.append(')'); fragment.append( ascending ? " asc" : " desc" ); if ( i<columns.length-1 ) fragment.append(", "); } return fragment.toString(); }
/** * Render the SQL fragment * */ public String toSqlString(Criteria criteria, CriteriaQuery criteriaQuery) throws HibernateException { String[] columns = criteriaQuery.getColumnsUsingProjection(criteria, propertyName); Type type = criteriaQuery.getTypeUsingProjection(criteria, propertyName); StringBuffer fragment = new StringBuffer(); for ( int i=0; i<columns.length; i++ ) { SessionFactoryImplementor factory = criteriaQuery.getFactory(); boolean lower = ignoreCase && type.sqlTypes( factory )[i]==Types.VARCHAR; if (lower) { fragment.append( factory.getDialect().getLowercaseFunction() ) .append('('); } fragment.append( columns[i] ); if (lower) fragment.append(')'); fragment.append( ascending ? " asc" : " desc" ); if ( i<columns.length-1 ) fragment.append(", "); } return fragment.toString(); }
public TypedValue[] getTypedValues(Criteria criteria, CriteriaQuery criteriaQuery) throws HibernateException { ArrayList list = new ArrayList(); Type type = criteriaQuery.getTypeUsingProjection(criteria, propertyName); if ( type.isComponentType() ) { CompositeType actype = (CompositeType) type; Type[] types = actype.getSubtypes(); for ( int j=0; j<values.length; j++ ) { for ( int i=0; i<types.length; i++ ) { Object subval = values[j]==null ? null : actype.getPropertyValues( values[j], EntityMode.POJO )[i]; list.add( new TypedValue( types[i], subval, EntityMode.POJO ) ); } } } else { for ( int j=0; j<values.length; j++ ) { list.add( new TypedValue( type, values[j], EntityMode.POJO ) ); } } return (TypedValue[]) list.toArray( new TypedValue[ list.size() ] ); }
public TypedValue[] getTypedValues(Criteria criteria, CriteriaQuery criteriaQuery) throws HibernateException { ArrayList list = new ArrayList(); Type type = criteriaQuery.getTypeUsingProjection(criteria, propertyName); if ( type.isComponentType() ) { AbstractComponentType actype = (AbstractComponentType) type; Type[] types = actype.getSubtypes(); for ( int i=0; i<types.length; i++ ) { for ( int j=0; j<values.length; j++ ) { Object subval = values[j]==null ? null : actype.getPropertyValues( values[j], EntityMode.POJO )[i]; list.add( new TypedValue( types[i], subval, EntityMode.POJO ) ); } } } else { for ( int j=0; j<values.length; j++ ) { list.add( new TypedValue( type, values[j], EntityMode.POJO ) ); } } return (TypedValue[]) list.toArray( new TypedValue[ list.size() ] ); }
Type type = criteriaQuery.getTypeUsingProjection( criteria, propertyName ); StringBuffer fragment = new StringBuffer(); if ( columns.length > 1 ) {
Type type = criteriaQuery.getTypeUsingProjection( criteria, propertyName ); StringBuffer fragment = new StringBuffer(); if ( columns.length > 1 ) {
public TypedValue[] getTypedValues(Criteria criteria, CriteriaQuery criteriaQuery) throws HibernateException { ArrayList list = new ArrayList(); Type type = criteriaQuery.getTypeUsingProjection(criteria, propertyName); if ( type.isComponentType() ) { CompositeType actype = (CompositeType) type; Type[] types = actype.getSubtypes(); for ( int j=0; j<values.length; j++ ) { for ( int i=0; i<types.length; i++ ) { Object subval = values[j]==null ? null : actype.getPropertyValues( values[j], EntityMode.POJO )[i]; list.add( new TypedValue( types[i], subval, EntityMode.POJO ) ); } } } else { for ( int j=0; j<values.length; j++ ) { list.add( new TypedValue( type, values[j], EntityMode.POJO ) ); } } return (TypedValue[]) list.toArray( new TypedValue[ list.size() ] ); }
public TypedValue[] getTypedValues(Criteria criteria, CriteriaQuery criteriaQuery) throws HibernateException { ArrayList list = new ArrayList(); Type type = criteriaQuery.getTypeUsingProjection(criteria, propertyName); if ( type.isComponentType() ) { AbstractComponentType actype = (AbstractComponentType) type; Type[] types = actype.getSubtypes(); for ( int i=0; i<types.length; i++ ) { for ( int j=0; j<values.length; j++ ) { Object subval = values[j]==null ? null : actype.getPropertyValues( values[j], EntityMode.POJO )[i]; list.add( new TypedValue( types[i], subval, EntityMode.POJO ) ); } } } else { for ( int j=0; j<values.length; j++ ) { list.add( new TypedValue( type, values[j], EntityMode.POJO ) ); } } return (TypedValue[]) list.toArray( new TypedValue[ list.size() ] ); }