useScrollableResultSetToSkip not used

Description

If I use org.hibernate.dialect.SQLServerDialect with SQLServer2008 in order to paginate correctly (see which was my previous errors, but this time I use a simple @Entity without any @Formula on it), I've got a "The requested operation is not supported on forward only result".

Here is the stack :

It seems to be a problem in org.hibernate.loader.Loader because if I put a breakpoint in line 1739 :

Here are the values of the variables :

  • useLimit : true

  • hasFirstRow : true

  • useLimitOffset : false

  • canScroll : true

  • useScrollableResultSetToSkip : true

  • scrollMode : null // I think, here it must have been ScrollMode.SCROLL_SENSITIVE

Actually, if I replace the value of scrollMode from null to ScrollMode.SCROLL_SENSITIVE just before the excecution of line 1739, then the error doesn't occure.

So there must be a problem in private ScrollMode getScrollMode(boolean scroll, boolean hasFirstRow, boolean useLimitOffSet, QueryParameters queryParameters) (line 1685) which doesn't use that useScrollableResultSetToSkip variable...

Here it's a problem with SQLServerDialect, but it could be another dialect which would want useScrollableResultSetToSkip to be taken into account (that is to say hasFirstRow = true, useLimit = true, useLimitOffset = false (dialect.supportsLimitOffset = false), getFactory().getSettings().isScrollableResultSetsEnabled() = true), because later getResultSet() method (line 1982) calls advance() method if !dialect.supportsLimitOffset() || !useLimit( selection, dialect ) which will finally call ResultSet.absolute which will throw that exception because the ResultSet wasn't prepared with ScrollMode SENSITIVE.

Environment

JBoss 7.1.1.Final, SQLServer 2008 R2

Activity

Show:
Steve Ebersole
October 27, 2015, 7:16 PM

This bug report does not indicate that the reported issue affects version 5.x. Versions prior to 5.x are no longer maintained. It would be a great help to the Hibernate team and community for someone to verify that the reported issue still affects version 5.x. If so, please add the 5.x version that you verified with to the list of affected-versions and attach the (preferably SSCCE) test case you used to do the verification to the report; from there the issues will be looked at during our triage meetings.

For details, see http://in.relation.to/2015/10/27/great-jira-cleanup-2015/

Steve Ebersole
October 28, 2015, 3:24 AM

As part of verifying that this issue affects 5.0, please just set the "Affects version". Leave the "verify-affects-5.0" label and leave the issue in "Awaiting Response" status; these are critical for us to be able to track these verifications and triage them. Thanks.

Assignee

Unassigned

Reporter

Anthony Ogier

Fix versions

None

backPortable

None

Suitable for new contributors

None

Requires Release Note

None

Pull Request

None

backportDecision

None

Components

Affects versions

Priority

Blocker
Configure