Glassfishプロジェクト(glassfish-persistence-api)から取得しても大丈夫ですか、それともHibernate jarがありますか?
OSGiシステムを開発している場合は、「バンドルされた」バージョンを Springsource Enterprise Bundle Repository からダウンロードすることをお勧めします。
それ以外の場合、javax.persistenceパッケージを含む通常のjarファイルを使用しても問題ありません
Mavenを使用している場合は、以下の依存関係を追加する必要があります
<dependency>
<groupId>javax.persistence</groupId>
<artifactId>persistence-api</artifactId>
<version>1.0</version>
</dependency>
Hibernateにバンドルされているejb3-persistence.jarを使用できます。このjarにはjavax.persistenceパッケージのみが含まれます。
最新かつ最高のHibernateでは、lib/jpaディレクトリ内にhibernate-jpa-2.0-api-1.0.0.Final.jarを含めることで依存関係を解決できました。最新のダウンロードでejb-persistence jarが見つかりませんでした。
hibernate.jarおよびhibernate-entitymanager.jarには、パッケージorg.hibernate。*のみが含まれています。したがって、Glassfishプロジェクトから取得する必要があります。
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>
参照: Maven Centralのhibernate-jpa-2.1-api パターンは、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>
一般的に、私はMaven依存関係を追加することを推奨する上記の回答に同意しますが、次の解決策を好みます。
完全なJavaEEプロファイルのAPIクラスを使用して依存関係を追加します。
<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>
また、antonyccが提案するような特定のJPAプロバイダーとの依存関係を追加します。
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>${hibernate-entitymanager.version}</version>
</dependency>
注意 <scope>provided</scope>
API依存関係セクション:これは、対応するjarがアーティファクトのlib/
、ただしアプリケーションサーバーによって提供されます。アプリケーションサーバーが指定されたバージョンのJavaEE APIを実装していることを確認してください。