Использовать драйвер базы данных
Я не знаком с JDBC, поэтому не уверен, какие инструменты вам доступны / недоступны, но кажется, что вы делаете больше работы, чем нужно.
Обычно драйвер базы данных сообщает вам, был ли запрос выполнен успешно, поэтому вам не нужно, чтобы ваше приложение запрашивало данные впоследствии, чтобы убедиться, что данные есть. Вместо этого запрашивает у водителя ошибки , чтобы узнать, была ли проблема с запросом.
Если вы вставляете большой объем данных и ваша база данных поддерживает его, вы можете использовать транзакцию для выполнения вставки. Это передаст все данные в базу данных, попытается вставить и предупредит вас о любых проблемах.
Если возникают проблемы с транзакцией, вы можете выполнить откат, и состояние базы данных будет таким же, как и при запуске (очевидно, вам потребуется обработать ошибки, чтобы сохранить ваши данные). Если проблем нет, вы можете завершить фиксацию транзакции и быть уверенным, что состояние базы данных соответствует состоянию приложения.
Альтернативы
Если по какой-либо причине вышеуказанные методы не сработают, вы можете попытаться разрешить состояние гонки, используя шаблон событий. Проще говоря, вы хотите вызвать событие , когда данные будут вставлены, чтобы предупредить валидатор, что он может начать чтение данных. Валидатор прослушает это событие и сработает, когда его услышит.