Это зависит от используемой вами базы данных и настроенного уровня изоляции. Обычно по умолчанию SELECT блокируется, если вы пытаетесь выбрать записи, которые были обновлены в другой транзакции, которая еще не зафиксирована.
Вы пытаетесь выбрать незафиксированные данные? Какую базу данных вы используете?
В качестве альтернативы ваш запрос может занять очень много времени. Устраните (или подтвердите) эту возможность, выполнив запрос через какой-либо инструмент базы данных.
Вы также можете позвонить setQueryTimeout()
, чтобы запрос не блокировался "навсегда".