Java Mailing List Archive

http://www.gg3721.com/

Home » Hibernate Commits List »

[hibernate-commits] Hibernate SVN: r15192 - in
 core/trunk/core/src/main/java/org/hibernate: loader and 1
 other directory.

hibernate-commits

2008-09-12


Author LoginPost Reply
Author: steve.ebersole@(protected)
Date: 2008-09-12 02:17:00 -0400 (Fri, 12 Sep 2008)
New Revision: 15192

Modified:
 core/trunk/core/src/main/java/org/hibernate/dialect/Dialect.java
 core/trunk/core/src/main/java/org/hibernate/loader/Loader.java
Log:
HHH-2592 : Dialect.forceLimitUsage

Modified: core/trunk/core/src/main/java/org/hibernate/dialect/Dialect.java
===================================================================
--- core/trunk/core/src/main/java/org/hibernate/dialect/Dialect.java  2008-09-12 06:16:31 UTC (rev 15191)
+++ core/trunk/core/src/main/java/org/hibernate/dialect/Dialect.java  2008-09-12 06:17:00 UTC (rev 15192)
@@(protected) @@
 }

 /**
-   * Generally, if there is no limit applied to a Hibernate query we do not apply any limits
-   * to the SQL query. This option forces that the limit be written to the SQL query.
-   *
-   * @return True to force limit into SQL query even if none specified in Hibernate query; false otherwise.
-   */
-  public boolean forceLimitUsage() {
-    return true;
-  }
-
-  /**
  * Does this dialect's LIMIT support (if any) additionally
  * support specifying an offset?
  *
@@(protected) @@
 }

 /**
+   * Generally, if there is no limit applied to a Hibernate query we do not apply any limits
+   * to the SQL query. This option forces that the limit be written to the SQL query.
+   *
+   * @return True to force limit into SQL query even if none specified in Hibernate query; false otherwise.
+   */
+  public boolean forceLimitUsage() {
+    return false;
+  }
+
+  /**
  * Given a limit and an offset, apply the limit clause to the query.
  *
  * @param query The query to which to apply the limit.
@@(protected) @@
  * @return The modified query statement with the limit applied.
  */
 public String getLimitString(String query, int offset, int limit) {
-    return getLimitString( query, offset > 0 );
+    return getLimitString( query, ( offset > 0 || forceLimitUsage() ) );
 }

 /**

Modified: core/trunk/core/src/main/java/org/hibernate/loader/Loader.java
===================================================================
--- core/trunk/core/src/main/java/org/hibernate/loader/Loader.java  2008-09-12 06:16:31 UTC (rev 15191)
+++ core/trunk/core/src/main/java/org/hibernate/loader/Loader.java  2008-09-12 06:17:00 UTC (rev 15192)
@@(protected) @@
  * LIMIT clause.
  */
 private static boolean useLimit(final RowSelection selection, final Dialect dialect) {
-    return dialect.supportsLimit() && ( hasMaxRows( selection ) || dialect.forceLimitUsage() );
+    return dialect.supportsLimit() && hasMaxRows( selection );
 }

 /**
@@(protected) @@
   }
   int firstRow = getFirstRow( selection );
   int lastRow = getMaxOrLimit( selection, dialect );
-    boolean hasFirstRow = firstRow > 0 && dialect.supportsLimitOffset();
+    boolean hasFirstRow = dialect.supportsLimitOffset() && ( firstRow > 0 || dialect.forceLimitUsage() );
   boolean reverse = dialect.bindLimitParametersInReverseOrder();
   if ( hasFirstRow ) {
     statement.setInt( index + ( reverse ? 1 : 0 ), firstRow );

_______________________________________________
hibernate-commits mailing list
hibernate-commits@(protected)
https://lists.jboss.org/mailman/listinfo/hibernate-commits
©2008 gg3721.com - Jax Systems, LLC, U.S.A.