Какую банку следует включить для использования пакета javax.persistence в приложении на спящем режиме?

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

Ответ 1

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

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

Ответ 2

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

<dependency>
    <groupId>javax.persistence</groupId>
    <artifactId>persistence-api</artifactId>
    <version>1.0</version>
</dependency>

Ответ 3

Вы можете использовать ejb3-persistence.jar, который связан с гибернацией. Эта банка включает только пакет javax.persistence.

Ответ 4

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

Ответ 5

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

Ответ 6

Для 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>

Ответ 7

В общем, я согласен с приведенными выше ответами, которые рекомендуют добавить зависимость от 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: это означает, что соответствующая банка не будет экспортироваться в артефакт lib/, но будет предоставлена ​​сервером приложений. Убедитесь, что ваш сервер приложений реализует указанную версию JavaEE API.