Подтвердить что ты не робот

Разница между сущностью JPA и объектом Hibernate

Когда я комментирую класс с @Entity и пытаюсь разрешить зависимости, я могу выбрать пакет между двумя различными пакетами, javax.persistence.Entity и org.hibernate.nnity.Entity

Пакет javax представляет собой аннотацию сущности JPA, но почему существует сущность-спящая сущность - аннотация и различие в ней есть с аннотацией JPA? Это просто расширение, позволяющее определить больше атрибутов?

4b9b3361

Ответ 1

org.hibernate.annotations.Entity имеет некоторые дополнительные атрибуты, которые javax.persistence.Entity не были стандартизированы. Дополнительные функции будут работать только при непосредственном использовании hibernate AnnotationConfiguration или если hibernate является поставщиком JPA.

из FAQ: изменить: новая ссылка конкретный вопрос: Забастовкa > изменить: новая ссылка ответ:

Я использую @org.hibernate.annotations.Entity и получаю исключение неизвестного объекта

Всегда импортировать @javax.persistence.Entity

@org.hibernate.annotations.Entity завершает @javax.persistence.Entity, но не заменяет

Например, есть атрибут optimisticLock, который сообщает hibernate, следует ли использовать столбец стандартной версии или сравнивать все столбцы при обновлении. Это поведение не входит в спецификацию JPA, поэтому для его настройки вы должны использовать расширение спящего режима, указанное в их собственной аннотации.

Вот так:

@Entity
@org.hibernate.annotations.Entity(optimisticLock=OptimisticLockType.ALL)
public class MyEntity implements Serializable {
...
}

Ответ 2

@org.hibernate.nnotes, используемые в вашем проекте, если вы хотите использовать шаблон JDBC или ibatis, нам нужно изменить код. если мы используем javax.persistence, нет необходимости менять код. Это основное различие между org.hibernate.annotations и javax persistence

Ответ 3

Я не уверен в различиях, но я уверен, что если у вас есть Hibernate jars в вашем классе, вы используете Hibernate JPA. Hibernate обеспечивает реализацию JPA. Даже если вы используете пакет javax.persistence, вы используете Hibernate JPA.

Разница может быть только в названии. Они могут предоставлять одинаковые классы как в пространстве пакета Hibernate, так и в пространстве пакета javax.