Если ваши сценарии использования вызывают много обновлений, но эти обновления не обязательно должны выполняться правильно, когда они запускаются (например, данные, которые они добавляют, не являются обязательными на месте), вы можете и на самом деле рекомендуется хранить их. и выполнять их позже (например, ночью или когда приложение менее сильно поражено). Вам не обязательно нужен демон (или любой другой) поток для этого, просто храните где-нибудь свои запросы на обновление, а затем выполняйте задание CRON или что-то еще через определенные промежутки времени и выполняйте их. Для этого вы можете использовать Quartz Scheduler , он будет обрабатывать все основные потоки / планирование.
Также в отношении пакетирования нескольких запросов и их отдельного выполнения, обычно Hibernate позаботится об этом (например, если вы отправляете несколько запросов на обновление в одной транзакции, Hibernate будет пакетировать их вместе и выполнять в самое позднее возможное время - обычно, когда транзакция заканчивается), так что это не должно беспокоить вас. Что МОЖЕТ стать проблемой, в зависимости от вашего количества запросов на обновление, так это сам Hibernate. В какой-то момент вы можете рассмотреть возможность использования JDBC и пакетного выполнения этих обновлений вручную для повышения производительности.