в ситуациях, когда вам нужно выполнять массовые операции, вы можете захотеть выполнить некоторые hql / sql непосредственно в сервисе. Инструменты ORM обеспечивают большое удобство, но иногда лучше иметь дело непосредственно с SQL. У нас была похожая ситуация, когда нам приходилось делать глубокую копию графа объектов - это заняло 10 минут в спящем режиме и 2 секунды в подходе, который я только что описал ...
edit - я подумал о твоей озабоченности «пропустить что-нибудь за пределами домена», и я думаю, ты имеешь в виду, что ты не хочешь смешивать проблемы. С подходом, который я описал, вы по-прежнему можете должным образом разделить свои проблемы - я сказал, что поместите методы hql в службу, но я имел в виду, что можно сделать это в DAO. Весь персистентный код в одном месте.
В нашей ситуации мы потратили много времени, пытаясь настроить спящий режим и найти способы сделать его быстрее. Когда старший парень из БД сказал мне просто сделать это в hql, потребовалось около 4 часов, чтобы реализовать правильные тесты, и это было сделано .... Вы действительно должны рассмотреть этот подход, чтобы сэкономить время ...