Проблема НЕ в том, что first
не поддерживается базой данных.
Проблема в том, что она не поддерживается для этого набора результатов.Код для HSQLDB JDBCResultSet::first
выглядит следующим образом:
public boolean first() throws SQLException {
checkClosed();
checkNotForwardOnly();
if (isOnInsertRow || isRowUpdated) {
throw Util.sqlExceptionSQL(ErrorCode.X_24513);
}
return navigator.first();
}
Исключение создается в методе checkNotForwardOnly
.
И реализация -
private void checkNotForwardOnly() throws SQLException {
if (!isScrollable) {
throw Util.notSupported();
}
}
Другими словами, first()
(и last()
) доступны только для прокручиваемых наборов результатов.
Общее объяснение прокручиваемых наборов результатов JDBC можно найти здесь .
Но, как уже отмечали другие, вам не нужно , чтобы использовать first()
в этом примере.Вы можете использовать вызов next()
, чтобы проверить, есть ли в ResultSet
какие-либо строки.