Hibernate – популярная библиотека, которая реализует технологию
JPA, обеспечивает объектно-реляционный маппинг (
ORM).
По задумке она избавляет разработчика от проблем хранения объектно-ориентированных (инкапсуляция-полиморфизм-наследование) данных в
реляционных таблицах.
Среди особенностей можно выделить такие, как HQL (объектно-ориентированный SQL), автоматическую генерацию таблиц, два уровня кэширования, независимость от конкретной базы данных.
На сегодняшний день Hibernate считается многими разработчиками отчасти устаревшей. На больших проектах она требует объемный набор XML-конфигураций, на практике зачастую приходится спускаться на уровень нативного SQL конкретной базы, а маппинг порой ведет себя неочевидно. Для более близкого знакомства с проблемами этой библиотеки рекомендуется
доклад Николая Алименкова.
Несмотря на свои проблемы, Hibernate остается лучшей альтернативой самописным
DAO. Её использует под капотом
Spring Data.
Список возможных альтернатив можно найти
на википедии.