Флаг ResultSet.TYPE_SCROLL_SENSITIVE не выдает новые данные, при обновлении базы. Почему?

Флаг ResultSet.TYPESCROLLSENSITIVE, как можно понять из его названия, используется в Java JDBC для создания скроллируемого и чувствительного к изменениям в базе данных курсора ResultSet. Когда вы используете этот флаг, курсор ResultSet может перемещаться вперед и назад по результатам запроса, а также чувствовать изменения, происходящие в базе данных после выполнения запроса.

Но, несмотря на это, флаг ResultSet.TYPESCROLLSENSITIVE не гарантирует автоматическую синхронизацию с базой данных. Поэтому, если в базе данных происходят изменения, они могут не быть автоматически отражены в ResultSet.

На самом деле, ResultSet.TYPESCROLLSENSITIVE является довольно медленным и затратным с точки зрения производительности флагом из-за необходимости постоянной проверки базы данных на наличие изменений. Поэтому в некоторых JDBC драйверах может быть отключено автоматическое обновление ResultSet с изменениями базы данных для оптимизации производительности.

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

Также стоит учесть, что возможность обновления ResultSet зависит от типа и настроек самой базы данных. Некоторые базы данных не поддерживают обновление или обратные прокрутки ResultSet вообще, независимо от установленных флагов в Java JDBC.

В итоге, чтобы получить новые данные после обновления базы данных, вам необходимо либо выполнить запрос повторно, либо использовать более подходящий флаг ResultSet в соответствии с требованиями вашего приложения.