Какой jar-файл следует включить, чтобы использовать пакет javax.persistence в приложении на основе гибернации? - PullRequest
42 голосов
/ 10 апреля 2009

Можно ли взять его из проекта Glassfish (glassfish-persistence-api) или, может быть, есть банка Hibernate?

Ответы [ 7 ]

14 голосов
/ 24 августа 2011

Если вы используете maven, добавление ниже зависимости должно работать

<dependency>
    <groupId>javax.persistence</groupId>
    <artifactId>persistence-api</artifactId>
    <version>1.0</version>
</dependency>
12 голосов
/ 28 октября 2009

Вы можете использовать ejb3-persistence.jar , который связан с Hibernate. В эту банку входит только пакет javax.persistence.

12 голосов
/ 10 апреля 2009

Если вы разрабатываете систему OSGi, я бы порекомендовал вам загрузить «пакетную» версию из Springsource Enterprise Bundle Repository .

В противном случае можно использовать обычный jar-файл, содержащий javax.persistence пакет

8 голосов
/ 07 апреля 2011

В последнем и лучшем Hibernate мне удалось разрешить зависимость, включив hibernate-jpa-2.0-api-1.0.0.Final.jar в каталог lib / jpa. Я не нашел ejb-persistence jar в самой последней загрузке.

4 голосов
/ 10 апреля 2009

hibernate.jar и hibernate-entitymanager.jar содержат только пакеты org.hibernate. *. Так что вы должны взять его из проекта Glassfish.

3 голосов
/ 02 августа 2015

В целом, я согласен с приведенными выше ответами, которые рекомендуют добавить зависимость maven, но я предпочитаю следующее решение.

Добавление зависимости с классами API для полного профиля JavaEE:

<properties>
    <javaee-api.version>7.0</javaee-api.version>
    <hibernate-entitymanager.version>5.1.3.Final</hibernate-entitymanager.version>
</properties>

<depencies>
    <dependency>
        <groupId>javax</groupId>
        <artifactId>javaee-api</artifactId>
        <version>${javaee-api.version}</version>
        <scope>provided</scope>
    </dependency>
</dependencies>

Также добавьте зависимость с конкретным поставщиком JPA, как предложил antonycc:

<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-entitymanager</artifactId>
    <version>${hibernate-entitymanager.version}</version>
</dependency>

Примечание <scope>provided</scope> в разделе зависимостей API: это означает, что соответствующий jar-файл не будет экспортирован в lib/ артефакта, но будет предоставлен сервером приложений. Убедитесь, что ваш сервер приложений реализует указанную версию API JavaEE.

3 голосов
/ 04 декабря 2014

Для JPA 2.1 пакет javax.persistence можно найти здесь:

<dependency>
   <groupId>org.hibernate.javax.persistence</groupId>
   <artifactId>hibernate-jpa-2.1-api</artifactId>
   <version>1.0.0.Final</version>
</dependency>

См .: hibernate-jpa-2.1-api в Maven Central Шаблон, по-видимому, изменяет имя артефакта при изменении версии JPA. Если это продолжится, можно ожидать появления новых версий в Maven Central здесь: Hibernate JPA версии

Приведенный выше JPA 2.1 APi можно использовать вместе с Hibernate 4.3.7, а именно:

<dependency>
   <groupId>org.hibernate</groupId>
   <artifactId>hibernate-entitymanager</artifactId>
   <version>4.3.7.Final</version>
</dependency>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...