Я думаю, что это трудно (если не невозможно) достичь.
Если вы думаете о запросе SQL в традиционном смысле, он не знает, сколько существует наборов данных и сколько времени это займет.,Я не знаю ни одного инструмента SQL (например, DB Visualizer, DataGrip и т. Д.), Который показывает индикатор выполнения и правильную оценку того, сколько времени это займет, потому что он всегда будет зависеть от объема данных в таблице.
Должен быть способ измерения, когда данные загружены на 25% / 50% / 75% / ....И единственное, что может занять много времени в вашем коде, это вызов entityManager.createQuery(...)
.
Другое решение
Я бы предложил удалить индикатор выполнения и добавить что-то вроде вращателяпоказать, что идет загрузка данных. JFoenix имеет симпатичный счетчик дизайна материалов.
Вы также можете добавить простой текст "loading data ...".
Редактировать (длясделайте его более заметным): Как правильно заметил @Slaw, вам также необходимо поместить вызов entityManager.createQuery(...)
в новую ветку.В противном случае поток пользовательского интерфейса может зависнуть, если запрос занимает больше времени.