Guest User

HHH-817_3.5.6-Final.patch

a guest
Jan 5th, 2016
242
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Diff 9.65 KB | None | 0 0
  1. diff --git a/core/src/main/java/org/hibernate/criterion/BetweenExpression.java b/core/src/main/java/org/hibernate/criterion/BetweenExpression.java
  2. index ac2028b..47b951e 100644
  3. --- a/core/src/main/java/org/hibernate/criterion/BetweenExpression.java
  4. +++ b/core/src/main/java/org/hibernate/criterion/BetweenExpression.java
  5. @@ -50,7 +50,7 @@ public class BetweenExpression implements Criterion {
  6.     throws HibernateException {
  7.         return StringHelper.join(
  8.             " and ",
  9. -           StringHelper.suffix( criteriaQuery.getColumnsUsingProjection(criteria, propertyName), " between ? and ?" )
  10. +           StringHelper.suffix( criteriaQuery.getColumnsUsingProjection(criteria, propertyName, false), " between ? and ?" )
  11.         );
  12.  
  13.         //TODO: get SQL rendering out of this package!
  14. diff --git a/core/src/main/java/org/hibernate/criterion/CriteriaQuery.java b/core/src/main/java/org/hibernate/criterion/CriteriaQuery.java
  15. index 7d8043d..e8e3c8a 100755
  16. --- a/core/src/main/java/org/hibernate/criterion/CriteriaQuery.java
  17. +++ b/core/src/main/java/org/hibernate/criterion/CriteriaQuery.java
  18. @@ -65,7 +65,7 @@ public interface CriteriaQuery {
  19.     /**
  20.      * Get the names of the columns mapped by a property path
  21.      */
  22. -   public String[] getColumnsUsingProjection(Criteria criteria, String propertyPath)
  23. +   public String[] getColumnsUsingProjection(Criteria criteria, String propertyPath, boolean returnAliases)
  24.     throws HibernateException;
  25.    
  26.     /**
  27. diff --git a/core/src/main/java/org/hibernate/criterion/IlikeExpression.java b/core/src/main/java/org/hibernate/criterion/IlikeExpression.java
  28. index 1b1b21a..cb58ce2 100644
  29. --- a/core/src/main/java/org/hibernate/criterion/IlikeExpression.java
  30. +++ b/core/src/main/java/org/hibernate/criterion/IlikeExpression.java
  31. @@ -52,7 +52,7 @@ public class IlikeExpression implements Criterion {
  32.     public String toSqlString(Criteria criteria, CriteriaQuery criteriaQuery)
  33.     throws HibernateException {
  34.         Dialect dialect = criteriaQuery.getFactory().getDialect();
  35. -       String[] columns = criteriaQuery.getColumnsUsingProjection(criteria, propertyName);
  36. +       String[] columns = criteriaQuery.getColumnsUsingProjection(criteria, propertyName, false);
  37.         if (columns.length!=1) throw new HibernateException("ilike may only be used with single-column properties");
  38.         if ( dialect instanceof PostgreSQLDialect ) {
  39.             return columns[0] + " ilike ?";
  40. diff --git a/core/src/main/java/org/hibernate/criterion/InExpression.java b/core/src/main/java/org/hibernate/criterion/InExpression.java
  41. index 0243400..922d906 100644
  42. --- a/core/src/main/java/org/hibernate/criterion/InExpression.java
  43. +++ b/core/src/main/java/org/hibernate/criterion/InExpression.java
  44. @@ -53,7 +53,7 @@ public class InExpression implements Criterion {
  45.      public String toSqlString( Criteria criteria, CriteriaQuery criteriaQuery )
  46.              throws HibernateException {
  47.          String[] columns = criteriaQuery.getColumnsUsingProjection(
  48. -                criteria, propertyName );
  49. +                criteria, propertyName, false );
  50.          if ( criteriaQuery.getFactory().getDialect()
  51.                  .supportsRowValueConstructorSyntaxInInList() || columns.length<=1) {
  52.  
  53. diff --git a/core/src/main/java/org/hibernate/criterion/LikeExpression.java b/core/src/main/java/org/hibernate/criterion/LikeExpression.java
  54. index 1af7339..d9560bc 100644
  55. --- a/core/src/main/java/org/hibernate/criterion/LikeExpression.java
  56. +++ b/core/src/main/java/org/hibernate/criterion/LikeExpression.java
  57. @@ -78,7 +78,7 @@ public class LikeExpression implements Criterion {
  58.             Criteria criteria,
  59.             CriteriaQuery criteriaQuery) throws HibernateException {
  60.         Dialect dialect = criteriaQuery.getFactory().getDialect();
  61. -       String[] columns = criteriaQuery.getColumnsUsingProjection( criteria, propertyName );
  62. +       String[] columns = criteriaQuery.getColumnsUsingProjection( criteria, propertyName, false );
  63.         if ( columns.length != 1 ) {
  64.             throw new HibernateException( "Like may only be used with single-column properties" );
  65.         }
  66. diff --git a/core/src/main/java/org/hibernate/criterion/NotNullExpression.java b/core/src/main/java/org/hibernate/criterion/NotNullExpression.java
  67. index c23b5e6..94c2cc4 100644
  68. --- a/core/src/main/java/org/hibernate/criterion/NotNullExpression.java
  69. +++ b/core/src/main/java/org/hibernate/criterion/NotNullExpression.java
  70. @@ -46,7 +46,7 @@ public class NotNullExpression implements Criterion {
  71.  
  72.     public String toSqlString(Criteria criteria, CriteriaQuery criteriaQuery)
  73.     throws HibernateException {
  74. -       String[] columns = criteriaQuery.getColumnsUsingProjection(criteria, propertyName);
  75. +       String[] columns = criteriaQuery.getColumnsUsingProjection(criteria, propertyName, false);
  76.         String result = StringHelper.join(
  77.             " or ",
  78.             StringHelper.suffix( columns, " is not null" )
  79. diff --git a/core/src/main/java/org/hibernate/criterion/NullExpression.java b/core/src/main/java/org/hibernate/criterion/NullExpression.java
  80. index ffa472d..4e0ba70 100644
  81. --- a/core/src/main/java/org/hibernate/criterion/NullExpression.java
  82. +++ b/core/src/main/java/org/hibernate/criterion/NullExpression.java
  83. @@ -46,7 +46,7 @@ public class NullExpression implements Criterion {
  84.  
  85.     public String toSqlString(Criteria criteria, CriteriaQuery criteriaQuery)
  86.     throws HibernateException {
  87. -       String[] columns = criteriaQuery.getColumnsUsingProjection(criteria, propertyName);
  88. +       String[] columns = criteriaQuery.getColumnsUsingProjection(criteria, propertyName, false);
  89.         String result = StringHelper.join(
  90.             " and ",
  91.             StringHelper.suffix( columns, " is null" )
  92. diff --git a/core/src/main/java/org/hibernate/criterion/Order.java b/core/src/main/java/org/hibernate/criterion/Order.java
  93. index ee92a31..2e5edd3 100644
  94. --- a/core/src/main/java/org/hibernate/criterion/Order.java
  95. +++ b/core/src/main/java/org/hibernate/criterion/Order.java
  96. @@ -65,7 +65,7 @@ public class Order implements Serializable {
  97.      */
  98.     public String toSqlString(Criteria criteria, CriteriaQuery criteriaQuery)
  99.     throws HibernateException {
  100. -       String[] columns = criteriaQuery.getColumnsUsingProjection(criteria, propertyName);
  101. +       String[] columns = criteriaQuery.getColumnsUsingProjection(criteria, propertyName, true);
  102.         Type type = criteriaQuery.getTypeUsingProjection(criteria, propertyName);
  103.         StringBuffer fragment = new StringBuffer();
  104.         for ( int i=0; i<columns.length; i++ ) {
  105. diff --git a/core/src/main/java/org/hibernate/criterion/PropertyExpression.java b/core/src/main/java/org/hibernate/criterion/PropertyExpression.java
  106. index d9de98f..f1d0a75 100644
  107. --- a/core/src/main/java/org/hibernate/criterion/PropertyExpression.java
  108. +++ b/core/src/main/java/org/hibernate/criterion/PropertyExpression.java
  109. @@ -49,8 +49,8 @@ public class PropertyExpression implements Criterion {
  110.  
  111.     public String toSqlString(Criteria criteria, CriteriaQuery criteriaQuery)
  112.     throws HibernateException {
  113. -       String[] xcols = criteriaQuery.getColumnsUsingProjection(criteria, propertyName);
  114. -       String[] ycols = criteriaQuery.getColumnsUsingProjection(criteria, otherPropertyName);
  115. +       String[] xcols = criteriaQuery.getColumnsUsingProjection(criteria, propertyName, false);
  116. +       String[] ycols = criteriaQuery.getColumnsUsingProjection(criteria, otherPropertyName, false);
  117.         String result = StringHelper.join(
  118.             " and ",
  119.             StringHelper.add(xcols, getOp(), ycols)
  120. diff --git a/core/src/main/java/org/hibernate/criterion/SimpleExpression.java b/core/src/main/java/org/hibernate/criterion/SimpleExpression.java
  121. index 2d72330..e2deb54 100644
  122. --- a/core/src/main/java/org/hibernate/criterion/SimpleExpression.java
  123. +++ b/core/src/main/java/org/hibernate/criterion/SimpleExpression.java
  124. @@ -65,7 +65,7 @@ public class SimpleExpression implements Criterion {
  125.     public String toSqlString(Criteria criteria, CriteriaQuery criteriaQuery)
  126.     throws HibernateException {
  127.  
  128. -       String[] columns = criteriaQuery.getColumnsUsingProjection(criteria, propertyName);
  129. +       String[] columns = criteriaQuery.getColumnsUsingProjection(criteria, propertyName, false);
  130.         Type type = criteriaQuery.getTypeUsingProjection(criteria, propertyName);
  131.         StringBuffer fragment = new StringBuffer();
  132.         if (columns.length>1) fragment.append('(');
  133. diff --git a/core/src/main/java/org/hibernate/loader/criteria/CriteriaQueryTranslator.java b/core/src/main/java/org/hibernate/loader/criteria/CriteriaQueryTranslator.java
  134. index 53bd028..5b69c02 100755
  135. --- a/core/src/main/java/org/hibernate/loader/criteria/CriteriaQueryTranslator.java
  136. +++ b/core/src/main/java/org/hibernate/loader/criteria/CriteriaQueryTranslator.java
  137. @@ -425,12 +425,13 @@ public class CriteriaQueryTranslator implements CriteriaQuery {
  138.      */
  139.     public String[] getColumnsUsingProjection(
  140.             Criteria subcriteria,
  141. -           String propertyName) throws HibernateException {
  142. +           String propertyName,
  143. +           boolean returnAliases) throws HibernateException {
  144.  
  145.         //first look for a reference to a projection alias
  146.         final Projection projection = rootCriteria.getProjection();
  147.         String[] projectionColumns = null;
  148. -       if ( projection != null ) {
  149. +       if ( projection != null && returnAliases) {
  150.             projectionColumns = ( projection instanceof EnhancedProjection ?
  151.                     ( ( EnhancedProjection ) projection ).getColumnAliases( propertyName, 0, rootCriteria, this ) :
  152.                     projection.getColumnAliases( propertyName, 0 )
  153. @@ -445,7 +446,7 @@ public class CriteriaQueryTranslator implements CriteriaQuery {
  154.             catch ( HibernateException he ) {
  155.                 //not found in inner query , try the outer query
  156.                 if ( outerQueryTranslator != null ) {
  157. -                   return outerQueryTranslator.getColumnsUsingProjection( subcriteria, propertyName );
  158. +                   return outerQueryTranslator.getColumnsUsingProjection( subcriteria, propertyName, returnAliases );
  159.                 }
  160.                 else {
  161.                     throw he;
Advertisement
Add Comment
Please, Sign In to add comment