Определение сущности в Hibernate 4 - PullRequest
1 голос
/ 20 марта 2012

Я только начинаю в Hibernate 4 и замечаю, что это два способа определения сущности. Либо определив xml-файл hbm и отобразив его с помощью bean-компонента, либо просто определите bean-компонент и используйте аннотацию для отображения таблицы в БД, например (@Entity, @column .. и т. Д.).

Мой вопрос: в чем разница между обоими методами? Извините, если вопрос простой, но я не смог найти ответ в Интернете ..

Спасибо за помощь

Ответы [ 2 ]

3 голосов
/ 20 марта 2012

Используя аннотации, вы довольно плотно связываете свою модель (сущности) со средой Hibernate (вы вводите связь между ними).С другой стороны, ваш исходный код становится намного более читабельным, поскольку вам не нужно переключаться между XML-файлами и исходными файлами Java.

Изначально Hibernate поддерживал только отображения XML, и аннотации были добавлены позже (после того, как они были введены в Java 5).Большинство Java-разработчиков сильно одобряют аннотации, поскольку они действительно дают понять, что класс представляет сущность Hibernate, какие у него есть ограничения и как он связан с другими сущностями в приложении.С другой стороны, использование определений XML отделяет ваш источник от Hibernate, и вы можете легко переключаться на другую библиотеку, не изменяя источники Java.Тем не менее, вы бы сделали намного лучше, если бы использовали Java Persistence API и его переносимые аннотации.Это дает возможность использовать унифицированный API ORM, который может делегировать любую инфраструктуру ORM (Hibernate, ibatis, EclipseLink и т. Д.).Переключение между фреймворками легко, как изменение в конфигурации JPA в режиме онлайн и добавление нового ORM в путь к классам ваших проектов.На практике очень немногие компании используют Hibernate напрямую (если только им не нужны некоторые его уникальные функции) - он обычно используется в сочетании с JPA.Очень немногие люди также используют определения сущностей XML - я давно не работал с ними над проектом.

1 голос
/ 20 марта 2012

Самая большая разница в том, как вы подходите к Hibernate.Некоторые могут предпочесть конфигурации XML аннотациям и наоборот.

Использование конфигурации XML дает вам больший контроль над Hibernate и позволяет хранить ваши файлы конфигурации в одном месте.

С другой стороны, аннотации JPA позволяют более интуитивно понятную настройку персистентности, сохраняя при этом вашу бизнес-логику свободной от блокировок поставщиков.

Возможно, вы также захотите проверить этот поток .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...