Hibernate или JPA для использования
Я использую Hibernate в наших проектах и настройках, основанных на аннотациях, для объектов HBO для хранения домена Hibernate. Для конфигурации на основе аннотаций мы имеем две опции
- Аннотации, основанные на JPA, с использованием
javax.persistence.*
- Использовать Hibernate Native Annotations
org.hibernate.annotations.*
В настоящее время мы используем конфигурацию аннотаций на основе JPA для наших POJO файлов и встроенного API Hibernate, таких как SessionFactory, Session и т.д. для открытия сеанса и выполнения операций с БД.
Нужна ваша помощь в следующих вещах,
Ответы
Ответ 1
Hibernate предоставляет одну из реализаций JPA. Если вы используете чисто код JPA в своем коде, вы можете перейти к другой реализации, если возникнет требование. Например, EclipseLink/TopLink и OpenJPA являются реализациями, которые могут потребоваться для другого клиента. Полный список реализаций здесь.
Если вы вынуждены использовать любые экзотические функции, предоставляемые спящим режимом, не входящие в спецификацию JPA, вам следует перейти на спящие конкретные API в базе кода. Связанная дискуссия с форума hibernate здесь.
Ответ 2
Мы смешали некоторые из этих аннотаций, так как с версией hibernate мы работали в те дни, некоторые функции в то время не были доступны в спецификации JPA. Например, для хранения логического значения в виде "Y" или "N" на БД вы имеете типы спящего режима, которые вы можете использовать. Но в то время такая спецификация отсутствовала в спецификации JPA. Сейчас я не знаю о статусе. Также для удаления сирот также в те дни JPA не было этой функции, но теперь я верю, что они предоставляют атрибут orphanRemoval по вашим параметрам каскада. Также у вас есть определенные функции, такие как @BatchSize, чтобы повысить производительность по отношению к сумкам. Я не знаю, доступны ли такие функции в спецификации JPA.
По моему опыту, смешение и совпадение с другими точками от обоих было бы полезно, учитывая, что вам не нужно переключаться с одного ORM на другой.