java.sql.SQLException: набор результатов закрыт

Здравствуйте, когда я пытаюсь выполнить свой код, я получаю сообщение об ошибке:

ERROR [TripDAO] TripDAO: findAllTripsByActivityId()
          java.sql.SQLException: The result set is closed.

Методы, где я получаю ошибку, выглядит так:

public List<Trip> findAllTripsByActivityId(int id) {
    List<Trip> trips = new ArrayList<Trip>();

    if (obtainConnection()) {
        try {
            PreparedStatement stm = null;
            ResultSet rs = null;
            stm = con.prepareStatement(findAllTripsByActivityIdQuery
                    .toString());
            logger.info("Wybrano id: " + id);
            stm.setInt(1, id);
            rs = stm.executeQuery();
            while (rs.next()) {
                trips.add(setInObject(rs));
            }
        } catch (Exception e) {
            logger.error("TripDAO: findAllTripsByActivityId() " + e);
        } finally {
            closeConnection();
        }
    }
    return trips;
}

public Trip setInObject(ResultSet rs) throws SQLException {
    Trip trip = new Trip();
    int id = rs.getInt("id");
    trip.setId(id);
    ...
    return trip;
}

Я понятия не имею, что может быть не так в этом коде. Вы можете мне помочь?

1 ответ

Вы передаете весь ResultSet на setInObject метод, который, вероятно, что его нарушает. Попробуйте извлечь значения из набора результатов в вашем findAllTripsByActivityId метод.

Другие вопросы по тегам