Grails HQL против операторов SQL - PullRequest
3 голосов
/ 07 июля 2011

Мне бы хотелось узнать мнение относительно запросов к базе данных с помощью операторов HQL или SQL, относительно простоты, сложности и производительности.

1 Ответ

8 голосов
/ 07 июля 2011

С HQL вы работаете на уровне домена на основе классов, а SQL - на уровне реляционной модели. С HQL вы можете просматривать модель вашего домена в запросах и SQL, вам нужно создавать ссылки с объединениями и более подробными условиями объединения.

Кроме того, проекции с HQL проще, поскольку вы получаете объекты напрямую, тогда как с помощью SQL вы можете получать табличные представления ваших реляционных данных.

Оптимизация HQL более сложна, так как вам нужно работать на многих уровнях (уровень домена, Hibernate, сгенерированный SQL, реляционная модель), но в основном вы можете управлять меньшим количеством кода.

Результаты SQL не являются типобезопасными, но в контексте Grails это не так важно, как в контексте Java.

...