41

私は現在、javax.persistenceパッケージからそれぞれEntityManagerEntityManagerFacotryとPersistenceを必要とするプロジェクトに取り組んでいます。データベースサービス用のようですが、現在のコードは十分に文書化されていません。グーグルを検索すると、これに付随するxmlファイルがあるはずですが、どちらもありません。私の質問は、これらの未解決のインポートをどのようになくすかということだと思います。ビルドパスに別のjarを追加する必要がありますか?1.5から出回っているので、そうする必要はないようです。

どんな助けでも大歓迎です。

4

9 に答える 9

40

これと同じ問題が発生し、スプリングブートを使用しているため、問題を解決するために必要なのは、次の依存関係を追加することだけであることに気付きました。

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>
于 2018-08-01T14:12:32.317 に答える
29

はい、おそらく別のjarまたは依存関係を追加する必要があります

javax.persistence.*Java Persistence API(JPA)の一部です。これは単なるAPIであり、インターフェースに似ていると考えることができます。JPAには多くの実装があり、この回答は、それぞれの非常に優れた詳細と、どちらを使用するかを示しています。

javax.persistence.*インポートを解決できない場合は、JPAを実装するjarを提供する必要があります。これを行うには、手動でダウンロードする(そしてプロジェクトに追加する)か、依存関係管理ツール(Ivy / Maven / Gradleなど)に宣言を追加します。MavenリポジトリでのEclipseLink実装(リファレンス実装)については、こちらをご覧ください。

その後、インポートを解決する必要があります。

JPAについては、こちらも参照してください。参照しているxmlはpersistence.xml、である可能性があります。これについては、リンクの3ページで説明されています。

そうは言っても、間違ったターゲットランタイムを指している可能性があります

正しく思い出せば、JBossなどのJavaEEアプリサーバーにJPA実装をデプロイする場合は、JPA実装を提供する必要はありません。ここを参照してください。「アプリケーションをJavaEE6アプリケーションサーバー(たとえば、JBoss AS 6など)にデプロイする場合、通常は必要ありません。」プロジェクトのターゲットランタイムを変更してみてください。

リモートリポジトリがJavaEEサーバーを想定しているときに、ローカルプロジェクトがTomcatを指すように設定されている場合は、これが当てはまる可能性があります。TomcatとJBossの違いについては、こちらをご覧ください。

編集:プロジェクトをTomcatではなくGlassFishを指すように変更し、javax.persistence.*明示的なJPA依存関係なしで正常に解決しました。

于 2016-05-19T04:59:09.797 に答える
28

hibernate-distribution-3.6.10.Final \ lib \ jpa:このjarを追加して問題を解決します。内部のlibフォルダーにjpaというフォルダーがあります--->内部にhibernate-jpa-2.0-1.0.1.Finaljarがあります

于 2013-03-26T07:01:46.493 に答える
23

誰かがMavenを使用している場合は、POM.XMLファイルに依存関係を追加する必要があります。この投稿の時点での最新バージョンは以下のとおりです。

<dependency>
    <groupId>org.hibernate.javax.persistence</groupId>
    <artifactId>hibernate-jpa-2.1-api</artifactId>
    <version>1.0.0.Final</version>
</dependency>
于 2017-09-01T13:20:02.790 に答える
2

GradleスプリングブートとスプリングJPAを使用している場合は、build.gradleファイルに以下の依存関係を追加します

dependencies {
    compile group: 'org.springframework.boot', name: 'spring-boot-starter-data-jpa', version: '2.1.3.RELEASE'
} 
于 2019-03-28T09:43:48.157 に答える
2

次の依存関係を追加して問題を解決しました

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

一緒に

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-jdbc</artifactId>
</dependency>
于 2019-09-16T21:33:33.360 に答える
1

私の解決策は、休止状態の依存関係を宣言したpom.xmlで定義したMavenプロファイルを選択することでした。

CTRL + ALT + P日食で。

私のプロジェクトでは、この問題や他の多くの問題が発生していました。私のpomでは、Glassfish 3、Glassfish 4、WildFlyをサポートするためのプロファイルが異なるため、コンテナごとに異なるバージョンのHibernateや、異なるJavaコンパイルターゲットなどがあります。アクティブなMavenプロファイルを選択すると、問題が解決しました。

于 2016-07-26T07:06:06.717 に答える
0

JPA実装としてHibernateを使用していて、Maven / Gradleを使用していない場合、より簡単な方法は、jarファイルではなくバンドル全体を1つずつダウンロードすることです。

http://hibernate.org/orm/downloads/requiredにアクセスして最新のライブラリをダウンロードし、フォルダーからjarを抽出します。

于 2017-05-09T06:04:21.013 に答える
0

新しい休止状態のjarでは、必要なjpaファイルは「hibernate-search-5.8.0.Final \ dist \ lib \ Provided\hibernate-jpa-2.1-api-1.0.0.Final」にあります。このjarファイルをプロジェクトのJavaビルドパスに追加する必要があります。これでおそらく問題は解決します。

于 2018-02-21T01:05:21.710 に答える