<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head> 
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 
        <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0"> 
        <base href="https://hibernate.atlassian.net"> 
        <title>Message Title</title> 
    </head> 
    <body class="jira" style="color: #333333; font-family: Arial, sans-serif; font-size: 14px; line-height: 1.429"> 
        <table id="background-table" cellpadding="0" cellspacing="0" width="100%" style="border-collapse: collapse; mso-table-lspace: 0; mso-table-rspace: 0; background-color: #f5f5f5; border-collapse: collapse; mso-table-lspace: 0; mso-table-rspace: 0" bgcolor="#f5f5f5"> 
            <!-- header here --> 
            <tbody>
                <tr> 
                    <td id="header-pattern-container" style="padding: 0; border-collapse: collapse; padding: 10px 20px"> 
                        <table id="header-pattern" cellspacing="0" cellpadding="0" border="0" style="border-collapse: collapse; mso-table-lspace: 0; mso-table-rspace: 0"> 
                            <tbody>
                                <tr> 
                                    <td id="header-avatar-image-container" valign="top" style="padding: 0; border-collapse: collapse; vertical-align: top; width: 32px; padding-right: 8px" width="32"> <img id="header-avatar-image" class="image_fix" src="cid:jira-generated-image-avatar-9a91141b-ac08-47d5-aadf-f4da7007a7e4" height="32" width="32" border="0" style="border-radius: 3px; vertical-align: top"> </td> 
                                    <td id="header-text-container" valign="middle" style="padding: 0; border-collapse: collapse; vertical-align: middle; font-family: Arial, sans-serif; font-size: 14px; line-height: 20px; mso-line-height-rule: exactly; mso-text-raise: 1px"> <a class="user-hover" rel="steve" id="email_steve" href="https://hibernate.atlassian.net/secure/ViewProfile.jspa?name=steve" style="color:#6c797f;; color: #3b73af; text-decoration: none">Steve Ebersole</a> <strong>updated</strong> an issue </td> 
                                </tr> 
                            </tbody>
                        </table> </td> 
                </tr> 
                <tr> 
                    <td id="email-content-container" style="padding: 0; border-collapse: collapse; padding: 0 20px"> 
                        <table id="email-content-table" cellspacing="0" cellpadding="0" border="0" width="100%" style="border-collapse: collapse; mso-table-lspace: 0; mso-table-rspace: 0; border-spacing: 0; border-collapse: separate"> 
                            <tbody>
                                <tr> 
                                    <!-- there needs to be content in the cell for it to render in some clients --> 
                                    <td class="email-content-rounded-top mobile-expand" style="padding: 0; border-collapse: collapse; color: #ffffff; padding: 0 15px 0 16px; height: 15px; background-color: #ffffff; border-left: 1px solid #cccccc; border-top: 1px solid #cccccc; border-right: 1px solid #cccccc; border-bottom: 0; border-top-right-radius: 5px; border-top-left-radius: 5px; height: 10px; line-height: 10px; padding: 0 15px 0 16px; mso-line-height-rule: exactly" height="10" bgcolor="#ffffff">&nbsp;</td> 
                                </tr> 
                                <tr> 
                                    <td class="email-content-main mobile-expand " style="padding: 0; border-collapse: collapse; border-left: 1px solid #cccccc; border-right: 1px solid #cccccc; border-top: 0; border-bottom: 0; padding: 0 15px 0 16px; background-color: #ffffff" bgcolor="#ffffff"> 
                                        <table class="page-title-pattern" cellspacing="0" cellpadding="0" border="0" width="100%" style="border-collapse: collapse; mso-table-lspace: 0; mso-table-rspace: 0"> 
                                            <tbody>
                                                <tr> 
                                                    <td class="page-title-pattern-first-line " style="padding: 0; border-collapse: collapse; font-family: Arial, sans-serif; font-size: 14px; padding-top: 10px"> <a href="https://hibernate.atlassian.net/browse/HHH" style="color: #3b73af; text-decoration: none">Hibernate ORM</a> / <a href="https://hibernate.atlassian.net/browse/HHH-11194" style="color: #3b73af; text-decoration: none"><img src="cid:jira-generated-image-avatar-98dc54af-6801-423d-96db-6fe5de2a42ad" height="16" width="16" border="0" align="absmiddle" alt="Bug" style="vertical-align: text-bottom"></a> <a href="https://hibernate.atlassian.net/browse/HHH-11194" style="color: #3b73af; text-decoration: none">HHH-11194</a> </td> 
                                                </tr> 
                                                <tr> 
                                                    <td style="vertical-align: top;; padding: 0; border-collapse: collapse; padding-right: 5px; font-size: 20px; line-height: 30px; mso-line-height-rule: exactly" class="page-title-pattern-header-container"> <span class="page-title-pattern-header" style="font-family: Arial, sans-serif; padding: 0; font-size: 20px; line-height: 30px; mso-text-raise: 2px; mso-line-height-rule: exactly; vertical-align: middle"> <a href="https://hibernate.atlassian.net/browse/HHH-11194" style="color: #3b73af; text-decoration: none">[Regression] SQLServerDialect no longer supports setFirstResult(n)</a> </span> </td> 
                                                </tr> 
                                            </tbody>
                                        </table> </td> 
                                </tr> 
                                <tr> 
                                    <td class="email-content-main mobile-expand  wrapper-special-margin" style="padding: 0; border-collapse: collapse; border-left: 1px solid #cccccc; border-right: 1px solid #cccccc; border-top: 0; border-bottom: 0; padding: 0 15px 0 16px; background-color: #ffffff; padding-top: 10px; padding-bottom: 5px" bgcolor="#ffffff"> 
                                        <table class="keyvalue-table" style="border-collapse: collapse; mso-table-lspace: 0; mso-table-rspace: 0"> 
                                            <tbody>
                                                <tr> 
                                                    <th style="color: #707070; font: normal 14px/20px Arial, sans-serif; text-align: left; vertical-align: top; padding: 2px 0">Change By:</th> 
                                                    <td style="padding: 0; border-collapse: collapse; font: normal 14px/20px Arial, sans-serif; padding: 2px 0 2px 5px; vertical-align: top"> <a class="user-hover" rel="steve" id="email_steve" href="https://hibernate.atlassian.net/secure/ViewProfile.jspa?name=steve" style="color:#6c797f;; color: #3b73af; text-decoration: none">Steve Ebersole</a> </td> 
                                                </tr> 
                                            </tbody>
                                        </table> </td> 
                                </tr> 
                                <tr> 
                                    <td class="email-content-main mobile-expand  issue-description-container" style="padding: 0; border-collapse: collapse; border-left: 1px solid #cccccc; border-right: 1px solid #cccccc; border-top: 0; border-bottom: 0; padding: 0 15px 0 16px; background-color: #ffffff; padding-top: 5px; padding-bottom: 10px" bgcolor="#ffffff"> 
                                        <table class="text-paragraph-pattern" cellspacing="0" cellpadding="0" border="0" width="100%" style="border-collapse: collapse; mso-table-lspace: 0; mso-table-rspace: 0; font-family: Arial, sans-serif; font-size: 14px; line-height: 20px; mso-line-height-rule: exactly; mso-text-raise: 2px"> 
                                            <tbody>
                                                <tr> 
                                                    <td class="text-paragraph-pattern-container mobile-resize-text " style="padding: 0; border-collapse: collapse; padding: 0 0 10px"> <span class="diffaddedchars" style="background-color:#ddfade;">As of 4.x Hibernate would allow queries to specify offset even if the underlying database had no way to support offset.&nbsp;&nbsp;How it accomplished that is a very suboptimal (from a perf spective) solution in which all rows up to the requested limit are returned in the JDBC ResultSet and then in memory we would advance the ResultSet to the requested offset.&nbsp;&nbsp;<br></span> <span class="diffcontext"><br></span> <span class="diffaddedchars" style="background-color:#ddfade;">SQL Server 2000 (SQLServerDialect) is one such database.&nbsp;&nbsp;<br></span> <span class="diffcontext"><br></span> <span class="diffremovedchars" style="background-color: #ffe7e7; text-decoration:line-through;">Add</span> <span class="diffaddedchars" style="background-color:#ddfade;">In 5.x we changed this to instead throw an exception, thereby circumventing the poor performance.&nbsp;&nbsp;In the interest of users upgrading, we should allow them to re-enable the older behavior.&nbsp;&nbsp;To this end we will add</span> <span class="diffcontext"> a compatibility setting</span> <span class="diffaddedchars" style="background-color:#ddfade;"> (defaulting</span> <span class="diffcontext"> to</span> <span class="diffaddedchars" style="background-color:#ddfade;"> false) that allows such users to re-enable the legacy behavior.<br><br>NOTE : that we have zero plans to "improve" the way this is handled - just</span> <span class="diffcontext"> allow</span> <span class="diffremovedchars" style="background-color: #ffe7e7; text-decoration:line-through;"> <br></span> <span class="diffaddedchars" style="background-color:#ddfade;"> users to opt-in to the older behavior.&nbsp;&nbsp;At some point we will consider removing this setting as well.&nbsp;&nbsp;No modern versions of these DBs we support (that we know of) lack support for limit/offset.</span> <span class="diffcontext"><br></span> <span class="diffaddedchars" style="background-color:#ddfade;"><br>As a work-around you could certainly supply a custom Dialect for the purpose of returning a "better" LimitHandler - specifically one that defines LimitHandler#supportsLimitOffset as false for SQL Server 2000. That should give you the same behavior.<br><br>----<br><br>h2. Original descripton<br>----<br></span> <span class="diffcontext">In a legacy project I have to connect to a MS SQL Server 2000. This worked well with the latest 4.x Hibernate using SQLServerDialect &amp; jtds JDBC Driver.<br><br>Test-Case: https://github.com/ElderByte-/hibernate-setFirstResult-mssql<br><br>However, now I upgraded from Hibernate 4.x to Hibernate 5.x and pagination (EntityManager.setFirstResult() -&gt; query.setFirstResult()) is no longer supported. Hibernate now throws the exception below.<br><br>{code}<br>[2016-10-21T18:34:23.732075193Z] java.lang.UnsupportedOperationException: query result offset is not supported<br>[2016-10-21T18:34:23.732141234Z]&nbsp;&nbsp;at org.hibernate.dialect.pagination.TopLimitHandler.processSql(TopLimitHandler.java:49) ~[hibernate-core-5.2.3.Final.jar!/:5.2.3.Final]<br>[2016-10-21T18:34:23.732186954Z]&nbsp;&nbsp;at org.hibernate.loader.Loader.executeQueryStatement(Loader.java:1904) ~[hibernate-core-5.2.3.Final.jar!/:5.2.3.Final]<br>[2016-10-21T18:34:23.732271373Z]&nbsp;&nbsp;at org.hibernate.loader.Loader.executeQueryStatement(Loader.java:1887) ~[hibernate-core-5.2.3.Final.jar!/:5.2.3.Final]<br>[2016-10-21T18:34:23.732283992Z]&nbsp;&nbsp;at org.hibernate.loader.Loader.doQuery(Loader.java:932) ~[hibernate-core-5.2.3.Final.jar!/:5.2.3.Final]<br>[2016-10-21T18:34:23.732373101Z]&nbsp;&nbsp;at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:349) ~[hibernate-core-5.2.3.Final.jar!/:5.2.3.Final]<br>[2016-10-21T18:34:23.732385606Z]&nbsp;&nbsp;at org.hibernate.loader.Loader.doList(Loader.java:2615) ~[hibernate-core-5.2.3.Final.jar!/:5.2.3.Final]<br>[2016-10-21T18:34:23.732428326Z]&nbsp;&nbsp;at org.hibernate.loader.Loader.doList(Loader.java:2598) ~[hibernate-core-5.2.3.Final.jar!/:5.2.3.Final]<br>[2016-10-21T18:34:23.732485046Z]&nbsp;&nbsp;at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2430) ~[hibernate-core-5.2.3.Final.jar!/:5.2.3.Final]<br>[2016-10-21T18:34:23.732496084Z]&nbsp;&nbsp;at org.hibernate.loader.Loader.list(Loader.java:2425) ~[hibernate-core-5.2.3.Final.jar!/:5.2.3.Final]<br>[2016-10-21T18:34:23.732585796Z]&nbsp;&nbsp;at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:502) ~[hibernate-core-5.2.3.Final.jar!/:5.2.3.Final]<br>[2016-10-21T18:34:23.732596992Z]&nbsp;&nbsp;at org.hibernate.hql.internal.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:371) ~[hibernate-core-5.2.3.Final.jar!/:5.2.3.Final]<br>[2016-10-21T18:34:23.732641665Z]&nbsp;&nbsp;at org.hibernate.engine.query.spi.HQLQueryPlan.performList(HQLQueryPlan.java:216) ~[hibernate-core-5.2.3.Final.jar!/:5.2.3.Final]<br>[2016-10-21T18:34:23.732711384Z]&nbsp;&nbsp;at org.hibernate.internal.SessionImpl.list(SessionImpl.java:1460) ~[hibernate-core-5.2.3.Final.jar!/:5.2.3.Final]<br>[2016-10-21T18:34:23.732728878Z]&nbsp;&nbsp;at org.hibernate.query.internal.AbstractProducedQuery.doList(AbstractProducedQuery.java:1426) ~[hibernate-core-5.2.3.Final.jar!/:5.2.3.Final]<br>[2016-10-21T18:34:23.732786867Z]&nbsp;&nbsp;at org.hibernate.query.internal.AbstractProducedQuery.list(AbstractProducedQuery.java:1398) ~[hibernate-core-5.2.3.Final.jar!/:5.2.3.Final]<br>[2016-10-21T18:34:23.73283995Z]&nbsp;&nbsp;&nbsp;at org.hibernate.Query.getResultList(Query.java:417) ~[hibernate-core-5.2.3.Final.jar!/:5.2.3.Final]<br>[2016-10-21T18:34:23.732853434Z]&nbsp;&nbsp;at org.hibernate.query.criteria.internal.compile.CriteriaQueryTypeQueryAdapter.getResultList(CriteriaQueryTypeQueryAdapter.java:72) ~[hibernate-core-5.2.3.Final.jar!/:5.2.3.Final]<br>[2016-10-21T18:34:23.732892907Z]&nbsp;&nbsp;at org.springframework.data.jpa.repository.support.SimpleJpaRepository.readPage(SimpleJpaRepository.java:586) ~[spring-data-jpa-1.10.3.RELEASE.jar!/:na]<br>[2016-10-21T18:34:23.732933276Z]&nbsp;&nbsp;at org.springframework.data.jpa.repository.support.SimpleJpaRepository.findAll(SimpleJpaRepository.java:478) ~[spring-data-jpa-1.10.3.RELEASE.jar!/:na]<br>{code}<br></span> </td> 
                                                </tr> 
                                            </tbody>
                                        </table> </td> 
                                </tr> 
                                <tr> 
                                    <td class="email-content-main mobile-expand " style="padding: 0; border-collapse: collapse; border-left: 1px solid #cccccc; border-right: 1px solid #cccccc; border-top: 0; border-bottom: 0; padding: 0 15px 0 16px; background-color: #ffffff" bgcolor="#ffffff"> <script type="application/ld+json">
{
  "@context": "http://schema.org",
  "@type": "EmailMessage",
  "description": "View Issue",
  "potentialAction": {
    "@type": "ViewAction",
        "target": "https://hibernate.atlassian.net/browse/HHH-11194?inbox=true&",
    "name": "View Issue"
      },
  "publisher": {
    "@type": "Organization",
    "name": "Atlassian",
    "url": "https://www.atlassian.com"
  }
}
</script> 
                                        <table id="actions-pattern" cellspacing="0" cellpadding="0" border="0" width="100%" style="border-collapse: collapse; mso-table-lspace: 0; mso-table-rspace: 0; font-family: Arial, sans-serif; font-size: 14px; line-height: 20px; mso-line-height-rule: exactly; mso-text-raise: 1px"> 
                                            <tbody>
                                                <tr> 
                                                    <td id="actions-pattern-container" valign="middle" style="padding: 0; border-collapse: collapse; padding: 10px 0 10px 24px; vertical-align: middle; padding-left: 0"> 
                                                        <table align="left" style="border-collapse: collapse; mso-table-lspace: 0; mso-table-rspace: 0"> 
                                                            <tbody>
                                                                <tr> 
                                                                    <td class="actions-pattern-action-icon-container" style="padding: 0; border-collapse: collapse; font-family: Arial, sans-serif; font-size: 14px; line-height: 20px; mso-line-height-rule: exactly; mso-text-raise: 0; vertical-align: middle"> <a href="https://hibernate.atlassian.net/browse/HHH-11194#add-comment" target="_blank" title="Add Comment" style="color: #3b73af; text-decoration: none"> <img class="actions-pattern-action-icon-image" src="cid:jira-generated-image-static-comment-icon-ae7c26d1-5828-4801-8ae6-9ef66ecf7550" alt="Add Comment" title="Add Comment" height="16" width="16" border="0" style="vertical-align: middle"> </a> </td> 
                                                                    <td class="actions-pattern-action-text-container" style="padding: 0; border-collapse: collapse; font-family: Arial, sans-serif; font-size: 14px; line-height: 20px; mso-line-height-rule: exactly; mso-text-raise: 4px; padding-left: 5px"> <a href="https://hibernate.atlassian.net/browse/HHH-11194#add-comment" target="_blank" title="Add Comment" style="color: #3b73af; text-decoration: none">Add Comment</a> </td> 
                                                                </tr> 
                                                            </tbody>
                                                        </table> </td> 
                                                </tr> 
                                            </tbody>
                                        </table> </td> 
                                </tr> 
                                <!-- there needs to be content in the cell for it to render in some clients --> 
                                <tr> 
                                    <td class="email-content-rounded-bottom mobile-expand" style="padding: 0; border-collapse: collapse; color: #ffffff; padding: 0 15px 0 16px; height: 5px; line-height: 5px; background-color: #ffffff; border-top: 0; border-left: 1px solid #cccccc; border-bottom: 1px solid #cccccc; border-right: 1px solid #cccccc; border-bottom-right-radius: 5px; border-bottom-left-radius: 5px; mso-line-height-rule: exactly" height="5" bgcolor="#ffffff">&nbsp;</td> 
                                </tr> 
                            </tbody>
                        </table> </td> 
                </tr> 
                <tr> 
                    <td id="footer-pattern" style="padding: 0; border-collapse: collapse; padding: 12px 20px"> 
                        <table id="footer-pattern-container" cellspacing="0" cellpadding="0" border="0" style="border-collapse: collapse; mso-table-lspace: 0; mso-table-rspace: 0"> 
                            <tbody>
                                <tr> 
                                    <td id="footer-pattern-text" class="mobile-resize-text" width="100%" style="padding: 0; border-collapse: collapse; color: #999999; font-size: 12px; line-height: 18px; font-family: Arial, sans-serif; mso-line-height-rule: exactly; mso-text-raise: 2px"> This message was sent by Atlassian JIRA <span id="footer-build-information">(v1000.499.4#100018-<span title="b6a952eafb8b7fc84197a7e35b1845752759a73a" data-commit-id="b6a952eafb8b7fc84197a7e35b1845752759a73a}">sha1:b6a952e</span>)</span> </td> 
                                    <td id="footer-pattern-logo-desktop-container" valign="top" style="padding: 0; border-collapse: collapse; padding-left: 20px; vertical-align: top"> 
                                        <table style="border-collapse: collapse; mso-table-lspace: 0; mso-table-rspace: 0"> 
                                            <tbody>
                                                <tr> 
                                                    <td id="footer-pattern-logo-desktop-padding" style="padding: 0; border-collapse: collapse; padding-top: 3px"> <img id="footer-pattern-logo-desktop" src="cid:jira-generated-image-static-footer-desktop-logo-c99afca4-3381-4a69-88bb-83e772463cf5" alt="Atlassian logo" title="Atlassian logo" width="169" height="36" class="image_fix"> </td> 
                                                </tr> 
                                            </tbody>
                                        </table> </td> 
                                </tr> 
                            </tbody>
                        </table> </td> 
                </tr> 
            </tbody>
        </table>   
    </body>
</html>