Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- diff --git a/core/src/main/java/org/hibernate/criterion/BetweenExpression.java b/core/src/main/java/org/hibernate/criterion/BetweenExpression.java
- index ac2028b..47b951e 100644
- --- a/core/src/main/java/org/hibernate/criterion/BetweenExpression.java
- +++ b/core/src/main/java/org/hibernate/criterion/BetweenExpression.java
- @@ -50,7 +50,7 @@ public class BetweenExpression implements Criterion {
- throws HibernateException {
- return StringHelper.join(
- " and ",
- - StringHelper.suffix( criteriaQuery.getColumnsUsingProjection(criteria, propertyName), " between ? and ?" )
- + StringHelper.suffix( criteriaQuery.getColumnsUsingProjection(criteria, propertyName, false), " between ? and ?" )
- );
- //TODO: get SQL rendering out of this package!
- diff --git a/core/src/main/java/org/hibernate/criterion/CriteriaQuery.java b/core/src/main/java/org/hibernate/criterion/CriteriaQuery.java
- index 7d8043d..e8e3c8a 100755
- --- a/core/src/main/java/org/hibernate/criterion/CriteriaQuery.java
- +++ b/core/src/main/java/org/hibernate/criterion/CriteriaQuery.java
- @@ -65,7 +65,7 @@ public interface CriteriaQuery {
- /**
- * Get the names of the columns mapped by a property path
- */
- - public String[] getColumnsUsingProjection(Criteria criteria, String propertyPath)
- + public String[] getColumnsUsingProjection(Criteria criteria, String propertyPath, boolean returnAliases)
- throws HibernateException;
- /**
- diff --git a/core/src/main/java/org/hibernate/criterion/IlikeExpression.java b/core/src/main/java/org/hibernate/criterion/IlikeExpression.java
- index 1b1b21a..cb58ce2 100644
- --- a/core/src/main/java/org/hibernate/criterion/IlikeExpression.java
- +++ b/core/src/main/java/org/hibernate/criterion/IlikeExpression.java
- @@ -52,7 +52,7 @@ public class IlikeExpression implements Criterion {
- public String toSqlString(Criteria criteria, CriteriaQuery criteriaQuery)
- throws HibernateException {
- Dialect dialect = criteriaQuery.getFactory().getDialect();
- - String[] columns = criteriaQuery.getColumnsUsingProjection(criteria, propertyName);
- + String[] columns = criteriaQuery.getColumnsUsingProjection(criteria, propertyName, false);
- if (columns.length!=1) throw new HibernateException("ilike may only be used with single-column properties");
- if ( dialect instanceof PostgreSQLDialect ) {
- return columns[0] + " ilike ?";
- diff --git a/core/src/main/java/org/hibernate/criterion/InExpression.java b/core/src/main/java/org/hibernate/criterion/InExpression.java
- index 0243400..922d906 100644
- --- a/core/src/main/java/org/hibernate/criterion/InExpression.java
- +++ b/core/src/main/java/org/hibernate/criterion/InExpression.java
- @@ -53,7 +53,7 @@ public class InExpression implements Criterion {
- public String toSqlString( Criteria criteria, CriteriaQuery criteriaQuery )
- throws HibernateException {
- String[] columns = criteriaQuery.getColumnsUsingProjection(
- - criteria, propertyName );
- + criteria, propertyName, false );
- if ( criteriaQuery.getFactory().getDialect()
- .supportsRowValueConstructorSyntaxInInList() || columns.length<=1) {
- diff --git a/core/src/main/java/org/hibernate/criterion/LikeExpression.java b/core/src/main/java/org/hibernate/criterion/LikeExpression.java
- index 1af7339..d9560bc 100644
- --- a/core/src/main/java/org/hibernate/criterion/LikeExpression.java
- +++ b/core/src/main/java/org/hibernate/criterion/LikeExpression.java
- @@ -78,7 +78,7 @@ public class LikeExpression implements Criterion {
- Criteria criteria,
- CriteriaQuery criteriaQuery) throws HibernateException {
- Dialect dialect = criteriaQuery.getFactory().getDialect();
- - String[] columns = criteriaQuery.getColumnsUsingProjection( criteria, propertyName );
- + String[] columns = criteriaQuery.getColumnsUsingProjection( criteria, propertyName, false );
- if ( columns.length != 1 ) {
- throw new HibernateException( "Like may only be used with single-column properties" );
- }
- diff --git a/core/src/main/java/org/hibernate/criterion/NotNullExpression.java b/core/src/main/java/org/hibernate/criterion/NotNullExpression.java
- index c23b5e6..94c2cc4 100644
- --- a/core/src/main/java/org/hibernate/criterion/NotNullExpression.java
- +++ b/core/src/main/java/org/hibernate/criterion/NotNullExpression.java
- @@ -46,7 +46,7 @@ public class NotNullExpression implements Criterion {
- public String toSqlString(Criteria criteria, CriteriaQuery criteriaQuery)
- throws HibernateException {
- - String[] columns = criteriaQuery.getColumnsUsingProjection(criteria, propertyName);
- + String[] columns = criteriaQuery.getColumnsUsingProjection(criteria, propertyName, false);
- String result = StringHelper.join(
- " or ",
- StringHelper.suffix( columns, " is not null" )
- diff --git a/core/src/main/java/org/hibernate/criterion/NullExpression.java b/core/src/main/java/org/hibernate/criterion/NullExpression.java
- index ffa472d..4e0ba70 100644
- --- a/core/src/main/java/org/hibernate/criterion/NullExpression.java
- +++ b/core/src/main/java/org/hibernate/criterion/NullExpression.java
- @@ -46,7 +46,7 @@ public class NullExpression implements Criterion {
- public String toSqlString(Criteria criteria, CriteriaQuery criteriaQuery)
- throws HibernateException {
- - String[] columns = criteriaQuery.getColumnsUsingProjection(criteria, propertyName);
- + String[] columns = criteriaQuery.getColumnsUsingProjection(criteria, propertyName, false);
- String result = StringHelper.join(
- " and ",
- StringHelper.suffix( columns, " is null" )
- diff --git a/core/src/main/java/org/hibernate/criterion/Order.java b/core/src/main/java/org/hibernate/criterion/Order.java
- index ee92a31..2e5edd3 100644
- --- a/core/src/main/java/org/hibernate/criterion/Order.java
- +++ b/core/src/main/java/org/hibernate/criterion/Order.java
- @@ -65,7 +65,7 @@ public class Order implements Serializable {
- */
- public String toSqlString(Criteria criteria, CriteriaQuery criteriaQuery)
- throws HibernateException {
- - String[] columns = criteriaQuery.getColumnsUsingProjection(criteria, propertyName);
- + String[] columns = criteriaQuery.getColumnsUsingProjection(criteria, propertyName, true);
- Type type = criteriaQuery.getTypeUsingProjection(criteria, propertyName);
- StringBuffer fragment = new StringBuffer();
- for ( int i=0; i<columns.length; i++ ) {
- diff --git a/core/src/main/java/org/hibernate/criterion/PropertyExpression.java b/core/src/main/java/org/hibernate/criterion/PropertyExpression.java
- index d9de98f..f1d0a75 100644
- --- a/core/src/main/java/org/hibernate/criterion/PropertyExpression.java
- +++ b/core/src/main/java/org/hibernate/criterion/PropertyExpression.java
- @@ -49,8 +49,8 @@ public class PropertyExpression implements Criterion {
- public String toSqlString(Criteria criteria, CriteriaQuery criteriaQuery)
- throws HibernateException {
- - String[] xcols = criteriaQuery.getColumnsUsingProjection(criteria, propertyName);
- - String[] ycols = criteriaQuery.getColumnsUsingProjection(criteria, otherPropertyName);
- + String[] xcols = criteriaQuery.getColumnsUsingProjection(criteria, propertyName, false);
- + String[] ycols = criteriaQuery.getColumnsUsingProjection(criteria, otherPropertyName, false);
- String result = StringHelper.join(
- " and ",
- StringHelper.add(xcols, getOp(), ycols)
- diff --git a/core/src/main/java/org/hibernate/criterion/SimpleExpression.java b/core/src/main/java/org/hibernate/criterion/SimpleExpression.java
- index 2d72330..e2deb54 100644
- --- a/core/src/main/java/org/hibernate/criterion/SimpleExpression.java
- +++ b/core/src/main/java/org/hibernate/criterion/SimpleExpression.java
- @@ -65,7 +65,7 @@ public class SimpleExpression implements Criterion {
- public String toSqlString(Criteria criteria, CriteriaQuery criteriaQuery)
- throws HibernateException {
- - String[] columns = criteriaQuery.getColumnsUsingProjection(criteria, propertyName);
- + String[] columns = criteriaQuery.getColumnsUsingProjection(criteria, propertyName, false);
- Type type = criteriaQuery.getTypeUsingProjection(criteria, propertyName);
- StringBuffer fragment = new StringBuffer();
- if (columns.length>1) fragment.append('(');
- diff --git a/core/src/main/java/org/hibernate/loader/criteria/CriteriaQueryTranslator.java b/core/src/main/java/org/hibernate/loader/criteria/CriteriaQueryTranslator.java
- index 53bd028..5b69c02 100755
- --- a/core/src/main/java/org/hibernate/loader/criteria/CriteriaQueryTranslator.java
- +++ b/core/src/main/java/org/hibernate/loader/criteria/CriteriaQueryTranslator.java
- @@ -425,12 +425,13 @@ public class CriteriaQueryTranslator implements CriteriaQuery {
- */
- public String[] getColumnsUsingProjection(
- Criteria subcriteria,
- - String propertyName) throws HibernateException {
- + String propertyName,
- + boolean returnAliases) throws HibernateException {
- //first look for a reference to a projection alias
- final Projection projection = rootCriteria.getProjection();
- String[] projectionColumns = null;
- - if ( projection != null ) {
- + if ( projection != null && returnAliases) {
- projectionColumns = ( projection instanceof EnhancedProjection ?
- ( ( EnhancedProjection ) projection ).getColumnAliases( propertyName, 0, rootCriteria, this ) :
- projection.getColumnAliases( propertyName, 0 )
- @@ -445,7 +446,7 @@ public class CriteriaQueryTranslator implements CriteriaQuery {
- catch ( HibernateException he ) {
- //not found in inner query , try the outer query
- if ( outerQueryTranslator != null ) {
- - return outerQueryTranslator.getColumnsUsingProjection( subcriteria, propertyName );
- + return outerQueryTranslator.getColumnsUsingProjection( subcriteria, propertyName, returnAliases );
- }
- else {
- throw he;
Advertisement
Add Comment
Please, Sign In to add comment