Я хочу знать различия / сходства между Hibernate и простым постоянством в Java EE 5?
Стандартизированная API Java EE 5 - это JPA 1.0 и является разновидностью унифицированной версии EJB 2 CMP, JDO, Hibernate и TopLink API и продуктов. Hibernate - это среда ORM, которая предшествовала JPA и сильно повлияла на спецификацию JPA (создатель Hibernate является членом экспертной группы JPA). Просто помните, что JPA - это всего лишь API, вам нужна реализация JPA, чтобы использовать его.
Мне не ясно, реализует ли Hibernate реализацию персистентности Java EE 5 или это совершенно другой подход к представлению данных в серверных системах.
Да, Hibernate обеспечивает реализацию JPA (а также расширяет ее, Hibernate - это расширенный набор JPA) через проект Hibernate EntityManager (который опирается на Hibernate Core ).
Я запутался в Hibernate и его связи с концепциями персистентности Java, приведенными в учебном руководстве по Java EE 5 ... Не могли бы вы уточнить роль Hibernate в контексте сущностей и EJB?
Hibernate может использоваться как поставщик сохраняемости JPA, то есть как фрагмент кода, который фактически сохраняет сущности EJB 3 (спецификация JPA была частью спецификации EJB 3.0 в версии 1.0, теперь это отдельная спецификация)
Кроме того, я хочу знать другие подходы (фреймворки), такие как JPA или Spring ...
Spring не является средой персистентности, Spring является контейнером IoC, он не конкурирует с Hibernate.
JPA-совместимые альтернативы Hibernate включают TopLink Essentials (RI в Java EE 5), EclipseLink (который также является RI JPA 2.0 в Java EE 6), OpenJPA, DataNucleus.
Другие опции для персистентности включают JDO (еще один стандартизированный API персистентности), iBATIS (не ORM, это скорее преобразователь данных), JDBC (API низкого уровня) для цитирования наиболее известных.
Проверьте это предыдущий ответ для обзора и некоторого исторического фона.