Hibernate

  • 30 мая 2012 г.
  • 10955 Слова
Саратовский Государственный Университет им. Н.Г. Чернышевского
Факультет «Компьютерных Наук и Информационных Технологий»

H I B E R N A T E

Студент: Киршин И.А.
Группа: 411
Сп-ть: Прикладная математика и информатика

г. Саратов 2010 год
Введение
Hibernate - некоммерческая библиотека с открытыми исходными кодами, предназначенная для взаимодействия с базами данных и предоставляющаявозможность отображения обычных объектов Java™ (POJO) на таблицы реляционных СУБД (ORM), а также поддерживающая различные формы запросов к данным. Проект Apache OpenJPA похож по функционалу, также поставляется в исходных кодах и выполняет отображение объектов POJO согласно спецификации EJB 3.0 Java Persistence API. В статье сравниваются основные варианты использования Hibernate и Enterprise JavaBeans™(EJB) 2.1 с эквивалентными сценариями, реализованными на основе OpenJPA и EJB 3.0. В частности, вы сможете поэтапно просмотреть и сравнить использование Hibernate, его объектно-реляционного отображения и конфигурации, с аналогичными элементами проектов на основе OpenJPA. Это сравнение не только подскажет вам, как выполнять подобные изменения, но и научит общему подходу к миграции унаследованныхприложений, использующих Hibernate, на OpenJPA.
Несмотря на то, что основной упор в статье делается на миграцию унаследованных приложений с Hibernate на OpenJPA, в ней также содержатся ценные сведения для тех, кто уже знает Hibernate и хочет быстро перейти на новую спецификацию JPA, используя OpenJPA в качестве провайдера хранения данных для разработки новых проектов.
Предполагается, что читатели статьизнакомы с основными концепциями Hibernate, рассматриваемая версия реализации - Hibernate 3.0. Все примеры статьи компилируются и запускаются на Hibernate 3 и EJB 2.1, а также OpenJPA 0.9.7, входящем в состав IBM® WebSphere® Application Server V6.1 Feature Pack for EJB 3.0.
Есть множество причин для переноса унаследованных приложений c Hibernate на OpenJPA. Например, Hibernate не является стандартнымрешением для объектно-реляционного отображения и управления хранением данных. Hibernate 3 использует JDK 1.3.1 и выше. В противоположность ему OpenJPA реализует спецификацию JPA, которая является неотъемлемой частью спецификаций Java 5. Именно спецификация Java 5 была положена в основу WebSphere Application Server V6.1 Feature Pack for EJB 3.0.
В статье под аббревиатурой JPA подразумевается спецификация, апод аббревиатурой OpenJPA подразумевается конкретная реализация спецификации JPA.
Хотя в статье не рассмотрены все имеющиеся особенности и аспекты Hibernate, в ней описаны основные варианты использования.

Перенос приложений, использующих Hibernate
Спецификация Java Persistence API (JPA) была разработана как часть спецификации EJB 3.0 (JSR220) для того, чтобы предоставить сообществу Javaединый стандартный механизм для хранения и обработки данных. JPA впитала в себя лучшие идеи Hibernate, TopLink, Java Data Objects и спецификации Container Managed Persistence (EJB-CMP) 2.1.
JPA может использоваться для обеих платформ Java, как Standard Edition (Java SE) так и Enterprise Edition (Java EE), поскольку она предполагает использование в качестве хранимых сущностей обычные объекты Java (POJO),процесс сохранения которых управляется провайдером JPA; одним из таких провайдеров является OpenJPA. Метаданные об отображении полей объекта на таблицы реляционных СУБД указываются в формате аннотаций Java 5 либо в XML-дескрипторах. Для сохранения Java-объектов в СУБД используется абстракция сущностей.
Создано уже довольно много реализаций провайдеров JPA. Реализация спецификации JPA от IBM основываетсяна проекте Apache OpenJPA. Благодаря появлению этих провайдеров JPA пользователи теперь могут использовать при программировании стандартный API, не выбирая между несовместимыми нестандартными реализациями провайдеров.
Чтобы помочь вам в миграции унаследованных приложений с Hibernate на OpenJPA, в этом разделе сравниваются часто используемые нестандартные API...
tracking img