Details
-
Task
-
Status: Closed (View Workflow)
-
Major
-
Resolution: Fixed
-
1.5.7
-
None
Description
Streaming results from database using hibernate fails when ResultSet#isAfterLast is called when there is no more rows to read.
/** |
* Retrieves whether the cursor is after the last row in
|
* this <code>ResultSet</code> object.
|
* <p>
|
* <strong>Note:</strong>Support for the <code>isAfterLast</code> method
|
* is optional for <code>ResultSet</code>s with a result
|
* set type of <code>TYPE_FORWARD_ONLY</code>
|
*
|
* @return <code>true</code> if the cursor is after the last row;
|
* <code>false</code> if the cursor is at any other position or the
|
* result set contains no rows
|
* @exception SQLException if a database access error occurs or this method is
|
* called on a closed result set
|
* @exception SQLFeatureNotSupportedException if the JDBC driver does not support
|
* this method
|
* @since 1.2
|
*/
|
boolean isAfterLast() throws SQLException; |
Besides it says it is optional, seems that most used drivers, like mysql, have it working.
I've attached a piece of code reproducing this case. I have also test it using mysql and h2, and in those cases it works.
NOTE: you need to define a database hostname, database, user and pass in persistence.xml