ошибка ResultSet not positioned properly, perhaps you need to call next при использовании try-with-resources

Как использовать try-with-resources в данном блоке кода, вылезает ошибка: ResultSet not positioned properly, perhaps you need to call next

@Override
public Group getById(int id) throws SQLException {
    String sql = "SELECT group_id, group_name, size FROM groups WHERE group_id=?";
    Group group = new Group();
    try (Connection connection = getConnection();
            PreparedStatement preparedStatement = connection.prepareStatement(sql);) {
        preparedStatement.setInt(1, id);
        try (ResultSet resultSet = preparedStatement.executeQuery();) {
            group.setGroupId(resultSet.getInt("group_id"));
            group.setGroupName(resultSet.getString("group_name"));
            group.setSize(resultSet.getInt("size"));
        }
    } catch (SQLException e) {
        e.printStackTrace();
        throw e;
    }
    return group;
} 

Ответы (1 шт):

Автор решения: Sergey

ResultSet является курсором во множестве отобранных записей. И изначально находится перед первой записью. Его надо продвинуть вперёд для позиционирования точно на запись.

if (resultSet.next()) {
    group.setGroupId(resultSet.getInt("group_id"));
    group.setGroupName(resultSet.getString("group_name"));
    group.setSize(resultSet.getInt("size"));
}

А try-with-resource здесь совсем ни при чём.

→ Ссылка