Антон, я же правильно понимаю, что отказ от сущностей для меня так же означает отказ от HQL и спецификаций?
Вы можете и на HQL писать запросы, которве для предентационного слоя полезней.
Для сложных запросов обычно проще оказаться и написать SQL, тем более HQL не всемогущ и все таки в первую очередь заботится о переносимость между разными БД.
В простом случае достаточно очистить контекст в сессии Hibernate, чтобы отделить замрос упюроаня представления от логики изменений. Приэтом запросы sdelect внутри операций логики должны выполняться в конткексте. Речь разлелением идет только об отаюправке в rest или другой внешней выгрузке, где контекст Hibernate больше тупит, чем помогает.