Вопрос проверяет кругозор и понимание того, что ORM — не единственный способ работы с базой данных.
Основные альтернативы JPA — это JDBC, Spring JdbcTemplate и SQL-мапперы. Они дают больше контроля над SQL, но требуют больше ручного кода. Также существуют более лёгкие ORM и DSL-библиотеки. Выбор альтернативы зависит от сложности запросов и требований к производительности.
Hibernate — не универсальное решение, и в ряде случаев используются другие подходы.
Это прямой доступ к SQL без ORM.
Плюсы
полный контроль над запросами
предсказуемая производительность
Минусы
много шаблонного кода
ручной маппинг данных
Когда выбирают
сложные отчёты
критичные по скорости участки
SQL-мапперы занимают промежуточное место между JDBC и ORM.
Основная идея
SQL пишется явно
результат маппится в объекты
Характерные особенности
меньше магии, чем в ORM
больше контроля над запросами
Некоторые библиотеки предлагают типобезопасный DSL для SQL.
Что это даёт
проверка запросов на этапе компиляции
удобная работа со сложными JOIN
Когда полезно
сложные динамические запросы
аналитические системы
На практике часто комбинируют ORM и альтернативы.
Пример
JPA для CRUD
JdbcTemplate для отчётов
Hibernate / JPA подходят для большинства CRUD-сценариев, но при сложных или критичных запросах часто используют JDBC, SQL-мапперы или DSL-библиотеки, комбинируя подходы в одном проекте.