Hibernate HQL для базового SQL (без объединений) - PullRequest
0 голосов
/ 19 мая 2010

Я работаю над проектом с Hibernate, и нам нужно заменить Hibernate на что-то «домашнее постоянство». Идея в том, что проект достаточно большой, и у нас много HQL-запросов. Проблема с запросами типа

select a,b from table1, table2 on t1.table1=t2.table2

В основном все объединения не поддерживаются нашими "ручными персистентными" вещами.

Что мне нужно, так это уметь создавать некоторый транскодер, который будет принимать в качестве входных данных запросы HQL и выводить некоторый SQL, но SQL без объединений

Я надеюсь, вы поняли идею. Мой уровень персистентности не поддерживает соединения.

Кто-нибудь имеет представление о чем-то подобном? Какой-то фреймворк или что-то?

Ответы [ 2 ]

0 голосов
/ 21 мая 2011

Похоже, вы не хотите избавляться от объединений, а выражаете их в очень старой форме SQL89. В любом случае это все еще соединение.

Синтаксис SQL92:

SELECT FROM TABLE1 T1
JOIN TABLE2 ON T1.ID = T2.ID;

Синтаксис SQL89:

SELECT FROM TABLE1 T1, TABLE2 T2
WHERE T1.ID = T2.ID; 

Я удивлен, что все, что в наши дни будет стоить денег, не сможет поддерживать синтаксис почти двух десятилетий.

0 голосов
/ 20 мая 2010

Вы не можете сделать то, что делает этот пример HQL, без какого-либо JOIN. То, что вы можете сделать, - это реализовать объединения в представлении, а затем использовать свой собственный материал для запроса представления. Это изолирует вас от реализации соединений. Единственный способ получить то, что вы хотите, без JOIN где-нибудь, это запросить каждую таблицу и затем объединить результаты в вашем коде.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...