2015-01-02 3 views
1

Я довольно новичок в мире Java ORM, и у меня есть некоторые сомнения, связанные с отношениями и различиями между JPA 2 и Hibernate.Каковы отношения между JPA 2 и Hibernate?

Чтение документации, мне кажется, что JPA2 является спецификацией в то время как Hibernate является специфическим реализации данной спецификации. Это правда? Что именно означает, что JPA 2 является спецификацией? Что такое спецификация? Я думаю, что он предоставляет некоторые интерфейсы (или что-то вроде этого), где определено общее требуемое поведение для выполнения операции над БД (например: вставка, удаление, выбор, переопределение операций и т. Д.).

Так что я думаю, что JPA2 предоставить список общих операций и не реализованный метод для выполнения его и структуру ORM как Hibernate реализует его.

Это правда или я что-то упускаю? Таким образом, это означает, что я не могу использовать JPA 2 в виде автономной версии, поскольку она не реализована, но в то же время я могу использовать Hibernate как автономный инструмент (без использования JPA)?

Так что, мне кажется, что я могу использовать Hibernate как в автономном и связанного с JPA 2?

Это значит, что я могу аннотировать мой класс, используя JPA 2, но если я не использую и его реализацию, ничего не произойдет?

Что именно является преимущество использования Hibernate ограниченного в JPA 2. Я думаю, что это что-то связано со стандартизацией и возможностью замены Hibernate и замены ее с использованием другой реализации без изменений моего кода. Но каково основное отличие использования Hibernate в автономной версии и ограничено JPA 2? JPA 2 предоставляет мне некоторые дополнительные функции или ограничивает меня уважением по сравнению с использованием автономной версии Hibernate? У меня меньше возможностей?

Tnx

+0

Я думаю, что это сообщение очень хорошо разъясняет ваши вопросы: [В чем разница между JPA и Hibernate?] (Http://stackoverflow.com/questions/9881611/whats-the-difference-between-jpa-and-hibernate) – wypieprz

ответ

1

Проще говоря - JPA это представляет собой интерфейс, в то время как Hibernate является его реализация. Таким образом, наилучшим способом является использование JPA 2 аннотации - в этом случае правило применяется к интерфейсу, а не к реализации.

Смежные вопросы