Есть много преимуществ использования Hibernate, когда вы, как разработчик, получаете правильную объектную модель, есть большая привлекательность во взаимодействии с базой данных через объекты, но на практике я обнаружил, что изначально Hibernate великолепен, но становится очень неприятным, когда выстолкнуться с такими проблемами, как производительность и поиск неисправностей.
Когда дело доходит до решения относительно уровня DA (доступа к данным), я задаю себе этот вопрос.Я пишу приложение, которое имеет требование для запуска других баз данных?
Если ответ положительный, тогда я рассмотрю (ORM) как Hibernate.Если его нет, я обычно просто использую JDBC через Spring.
Мне кажется, что взаимодействие с базой данных через JDBC намного более прозрачно и позволяет легче находить ошибки и настраивать производительность.