Я использую JDBC для базы данных PostgreSQL.Когда я запрашиваю сущность в наборе результатов, она возвращает 5 строк.С этим объектом связан еще один объект, к которому я обращаюсь, пока использую строку в приведенном выше наборе результатов.Когда я выполняю этот запрос, вышеуказанный набор результатов закрывается.
Это означает, что он позволяет активировать только 1 набор результатов для одного подключения за раз.
Ранее тот же код работал идеальнодля сервера БД Oracle.
Это то, что мне нужно попросить администратора БД настроить сервер для разрешения нескольких наборов результатов?Или сделать некоторые изменения в коде?Или это невозможно сделать в postgre?Вот код для более подробной информации:
Connection conn = PTSConnection.getConnection();
Statement stmt = conn.createStatement();
ResultSet lines = stmt.executeQuery("SELECT LINEID,STARTSTOPID,ENDSTOPID FROM LINES"); **//first resultset is active**
while (lines.next()){
int lineId= lines.getInt(1);
Stop ss = StopStorage.getByID(lines.getInt(2));
Stop es = StopStorage.getByID(lines.getInt(3));
ResultSet stops = stmt.executeQuery("SELECT STOPID FROM STOPSINLINES WHERE LINEID=" + lineId); **//first resultset dies**
List<Stop> lineStops = new ArrayList<Stop>();
while(stops.next()){
Stop stop = StopStorage.getByID(stops.getInt(1));
lineStops.add(stop);
}
stops.close();
Line aLine = null;
ResultSet emergencyLine = stmt.executeQuery("SELECT CAUSE, STARTTIME, ENDTIME FROM EMERGENCYLINES WHERE LINEID =" + lineId);
if(emergencyLine.next()){
String cause = emergencyLine.getString(1);
Time startTime = emergencyLine.getTime(2);
Time endTime = emergencyLine.getTime(3);
aLine = new EmergencyLine(ss, es, cause, startTime, endTime, (Stop[]) lineStops.toArray(new Stop[lineStops.size()]));
} else {
aLine = new Line(ss, es, (Stop[]) lineStops.toArray(new Stop[lineStops.size()]));
}
emergencyLine.close();
LineRepository.getInstance().addLine(aLine);
}
lines.close();