@P_Alexander
First head

Что лучше использовать для манипуляции данными в БД через Hibernate?

Изучаю HIBERNATE , из прочтенного понял что для манипуляции данными в БД используют три вида - С помощью обычного SQL, HQL, CRITERIA. Вопрос, что лучше использовать и что используют в данное время? что лучше использовать для CRUD операций, где то читал что Criteria используется только для чтения из базы, я понимаю что все это зависит от проекта и от того что тебе нужно, но я бы хотел узнать в общих чертах что лучше использовать и в каких случаях???
например для чего лучше заюзать Criteria a для чего лучше использовать нативный SQL?
  • Вопрос задан
  • 500 просмотров
Решения вопроса 1
sergey-gornostaev
@sergey-gornostaev Куратор тега PostgreSQL
Седой и строгий
Использования нативных запросов следует избегать. Они нужны только в тех редких случаях, когда возможностей ORM не хватает, но и отказываться от ORM не хочется.

HQL лаконичен и прост, что позволяет быстро набросать простую логику работы с базой. Но, во-первых, правильность HQL-запроса невозможно проверить на этапе компиляции, как и соответствие типов получаемых им параметров или возвращаемых им значений, а значит увеличивается шанс падения приложения в процессе работы и становится существенно тяжелее поиск ошибок. А, во-вторых, HQL плохо подходит для динамического конструирования запроса.

Criteria API наоборот многословен и лучше подходит для сложной логики работы с базой, зато позволяет отловить ошибки ещё на этапе компиляции и динамически построить запрос.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы