Что такое Hibernate?

Посмотреть в Telegram: @JavaSobes/342
Hibernate – популярная библиотека, которая реализует технологию JPA, обеспечивает объектно-реляционный маппинг (ORM).

По задумке она избавляет разработчика от проблем хранения объектно-ориентированных (инкапсуляция-полиморфизм-наследование) данных в реляционных таблицах.

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

На сегодняшний день Hibernate считается многими разработчиками отчасти устаревшей. На больших проектах она требует объемный набор XML-конфигураций, на практике зачастую приходится спускаться на уровень нативного SQL конкретной базы, а маппинг порой ведет себя неочевидно. Для более близкого знакомства с проблемами этой библиотеки рекомендуется доклад Николая Алименкова.

Несмотря на свои проблемы, Hibernate остается лучшей альтернативой самописным DAO. Её использует под капотом Spring Data.

Список возможных альтернатив можно найти на википедии.