Это действительно не работает, и я не думаю, что это когда-либо будет, но не потому, что "нет никакого способа получить объекты".
Hibernate позволяет использовать простые SQL-запросы и предоставляет множество различных опций для отображения результатов в ваши сущности (или не-сущностные объекты Java). Вы можете написать свой запрос как:
SELECT table_A.*
FROM table_A JOIN table_B on table_A.some_prop_column = tableB.other_column
WHERE ...
и выполнить его из Hibernate через:
List objectAs = session.createSQLQuery(yourQuerySQL).addEntity(ObjectA.class).list();
Проблема с смешиванием SQL и HQL заключается в том, что между ними очень легко вступить в конфликт - SQL, генерируемый из HQL, может использовать один псевдоним таблицы, а необработанный SQL - другой; сгенерированный SQL может содержать таблицы / объединения, конфликтующие с необработанным SQL и т. д. *
И это конец, все, что дает вам абсолютно ничего - это даже не поможет вашему варианту использования. Если вы хотите, чтобы кто-то изменил «смешанный» запрос HQL / SQL, ему все равно необходимо знать и SQL, и HQL - по крайней мере, на уровне, необходимом для проведения различия между ними.
Все это говорит о том, что если ваш конечный пользователь должен иметь возможность настраивать этот запрос, возможно, вам следует рассмотреть возможность использования Criteria API , чтобы сгенерировать запрос, который вам нужен на основе ввода пользователя. Если конечный пользователь изменяет фактический запрос в приложении, это зияющая дыра в безопасности, если вы не принимаете крайних мер предосторожности.