HQL vs. SQL / Hibernate netbeans HQL редактор - PullRequest
6 голосов
/ 12 ноября 2010

Я преподаю себя в спящем режиме, и меня очень смущает, почему я не могу просто написать простые запросы SQL.

Я нахожу это более запутанным в использовании, чем простой SQL (к чему я привык)

ПЛЮС: HQL-редактор NetBeans мне показался довольно раздражающим. Мне сложнее создать правильный запрос на HQL, чем на SQL, и почему показанный SQL отличается от реальных операторов SQL?

Так зачем его использовать?- Как известно, hibernate очень ресурсоемкий, и я считаю, что hibernate является причиной того, что у нашего приложения часто заканчивается память, поскольку во время процесса повторного развертывания, например ..

, я очень заинтересованзная, почему я должен использовать Hibernate, а не простые операторы SQL (mysql)!?

И, возможно, хорошая ссылка для запросов hibernate была бы хороша;), я использую эту атм:

Но также заинтересован в любой хорошей ссылке, объясняющей настройку запросов, отображение, базовую конструкцию и т. Д.

С наилучшими пожеланиями Алекс

1 Ответ

3 голосов
/ 02 декабря 2010

HQL является объектно-ориентированным и предназначен для работы с объектами Java, представляющими ваши таблицы БД. Основным преимуществом является то, что вы можете поместить заполнители, такие как :orderNumber (используя символ двоеточия) в HQL-запрос и заменить его значением переменной. Например:

int orderNumber = 685412;
List<Order> l= 
    session.createQuery("from Order where orderNumber = :orderNumber")
    .setParameter("orderNumber",orderNumber).list();

Таким образом, вы можете просто изменить orderNumber, избегая классического

String query = "select * from Order where orderNumber = " + orderNumber + "...";

Более того, использование синтаксиса MySQL иногда делает ваш код не пригодным для повторного использования, если вы переносите свою БД в другую СУБД. Во всяком случае, я до сих пор не настолько убежден в предпочтении HQL.

Здесь вы можете найти полное определение грамматики.

...