Hibernate следует спецификации JPA, которая позволяет вам не зависеть (зависеть от поставщика) от Hibernate. Вы можете переключиться на другую реализацию, такую как TopLink, если возникнет такая необходимость.
С Hibernate вы можете сделать свой код на 90% (или на 100%, если вы не используете прямые запросы JDBC) независимым от базы данных (используя HQL), т. Е. Тот же код будет работать на MSSQL, MySQL или Oracle (без каких-либо основные изменения, внесенные в уровень доступа к данным).
Hibernate очень высок для каждого форманта с поддержкой кэширования (как первого уровня, так и второго уровня).
Hibernate является очень хорошим ORM (Object Relational Mapping) по сравнению с iBatis, где вы в основном заканчиваете ручным кодированием различных запросов в XML, и большую часть времени люди, использующие Hibernate, в конечном итоге возвращают карты с данными (из-за накладных расходов при настройке отображения от сущностей БД до классов в Java) и, следовательно, в конечном итоге с кодом, в котором удаление или добавление одного поля вызывает серьезные изменения в коде.