по моим наблюдениям, грамотно написанные модельки, @EntityGraph, границы @Transactional позволяют выдавать хиберу приемлимого качества sql код, то есть вы скорее всего написали бы точно такой же
еще можно выиграть на небольшой денормализации схемы, например у постгреса есть перечисления, массивы, бинарный json, меньше возни с lazy collections получается