問題タブ [entitymanager]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
4755 参照

jpa - 2 つの永続性ユニットが必要な EclipseLink、EntityManager

私は1つのjarライブラリA(またはEclipseのプロジェクト)を持っています。これには独自の永続ユニット(META-INF/persistence.xml)といくつかのエンティティクラスがあり、これを使用する別のプロジェクト(B)があります。プロジェクト B には、永続化ユニットとエンティティ クラスもあります。

プロジェクト BI では、プロジェクト A と B の両方のエンティティ クラスを使用する必要があります。ただし、「A」を永続化ユニット名として設定すると、このクエリがプロジェクト B のエンティティにある場合、EntityManager は名前付きクエリを作成できません。「B」を永続化として設定すると、ユニット名の場合、プロジェクト A のエンティティから名前付きクエリを作成できません。エラー メッセージは次のとおりです。

永続化ユニットに他の永続化ユニットを含めることはできますか? または、この問題を解決する他の方法はありますか?

0 投票する
2 に答える
81064 参照

java - EntityManager (JPA)を使用してDAOにupdate()メソッドを実装する方法は?

簡単な更新を実装する標準的な方法は何ですか?

例: 電話番号 NNNNNN のユーザーがいて、YYYYYY に設定したいとします。

ユーザー エンティティは可能な限り単純です。

0 投票する
2 に答える
18876 参照

spring - Spring では、ClassPathXmlApplicationContext を使用して EntityManager を取得するにはどうすればよいですか?

Spring を使用すると、次のプロパティで Bean を自動配線できます。

以下を使用して、Bean「someBean」を手動で自動配線できます。

ただし、特定の EntityManager を直接取得する方法がわかりません。ユースケースは、すべての EntityManager オブジェクトを取得し、それらのオブジェクトで単純なクエリを実行して、それらが適切に設定されていることを確認するテストを作成することです。これを行うには、アプリケーション コンテキストからすべての EntityManager オブジェクトを取得できる必要があります。どうやってやるの?

以下は動作しません。空のマップを返します。

0 投票する
2 に答える
5109 参照

java - 重複エントリを報告する JPA を使用して、新しいが同一のエンティティを永続化する

エンティティ オブジェクトが 2 つの列に制約のあるテーブルにマップされている MySQL データベースに接続された JPA プロジェクトがあります。あれは:

データベースでは、my_entity テーブルに (myField1, myField2) に対する一意の制約があります。問題は、EntityManager.remove(entity) で既存のエンティティを削除してから、EntityManager.persist(entity) で新しいエンティティを追加すると、データベースが重複行に関するエラーをスローすることです。

例えば:

これにより、MySQLIntegrityConstraintViolationException が発生し、これが重複したエントリであると不平を言います。古いエントリを削除する前に新しいエントリを追加しようとしているからだと思います。その秩序を維持する方法はありますか?または、この状況を防ぐために JPA を使用する方法はありますか? これは一般的な使用例ではありませんが、エンティティを削除して関連するすべてのデータを削除して最初からやり直そうとし、簡単なフィールドを再作成してから、データが削除されていないことに気付くユーザーについて心配しています。

hashCode と equals の実装は次のとおりです。

0 投票する
1 に答える
3378 参照

hibernate - OneToMany アノテーションを追加すると、JPA/Hibernate を使用して EntityManager のインスタンス化に失敗する

OneToMany既に列があるクラスに列を追加するときに、EntityManager をインスタンス化できないことに苦労していOneToManyます。

各行は人に固有であるため、現在、EducationInfoにはユーザーがいますが、ユーザー名を指定してすべての教育情報をロードできるようにしたいと考えています。OneToOne

列を追加するときに orm.xml ファイルを変更するのではなく、データベースを削除して再作成できるようにします。

最後の列を含めないと単体テストは正常に動作しますが、これを含めるとすべての単体テストが失敗します。

使用しようとしているクラスは次のとおりです。このクラスの単体テストは正常に機能します。

また、EntityManager のインスタンス化を妨げるエラーを知る方法があるかどうかも知りたいのですが、主な問題は、この列をユーザーに追加するときに何が問題を引き起こしているのかということです。

アップデート:

間違っていた部分を削除しました。

更新 2:

教育エンティティのユーザー列をに変更したところ@ManyToOne、すべての単体テストが失敗しました。

私のエラーログの終わりはこれです:

次に、すべてのテストで EntityManager が null であるため、失敗します。

更新 3:

エンティティは複数のAddressエンティティから呼び出されるため、外部キーはありません。

この問題は、Apache Derby をデータベースとして使用することによって引き起こされる可能性がありますか?

残念ながら、エラーメッセージは表示されません。これをmaven内から実行しますが、毎回データベースを削除しますが、何が間違っているのかわかりません。EducationInfo -> User からの @ManyToOne は問題を引き起こしませんが、 @OneToMany -> User からの EducationInfo は問題を引き起こします。

更新 4:

提案どおり、mappedBy を User エンティティに追加しました。動作しない定義が 5 つあるため、別の列定義でそれを使用しましたが、それらはすべて同じ理由であると考えているため、1 つだけでテストしています。残念ながら、それでも EntiyManagerFactory がビルドされないため、すべてのテストが失敗します。

最終更新:

実際にあったケースは

複数のバッグを同時に取得することはできません

そのため、FetchType を EducationInfo から完全に削除したところ、問題は解消されました。

0 投票する
2 に答える
9399 参照

java - EntityManager 初期化のベスト プラクティス

を使用する場合EntityManager、 で 1 つのインスタンスを取得PersistenceContextしてプログラムに渡す方が良いですか、それとも依存性注入を複数回使用する必要がありますか?

私のアプリケーションでは、各クライアントはステートフル セッション Bean と通信し、各 Bean はEntityManagerある時点で使用する必要があります。Bean メソッドは同時に呼び出されると思います (しかし、よくわかりません)。EntityManagerスレッドセーフな方法で使用することを保証するにはどうすればよいですか? 取引で?各 Bean に個別のインスタンスがありますか?

これが混乱している場合は申し訳ありません。私は EJB/JPA を初めて使用するので、質問に対処する資料が見つかりませんでした。

0 投票する
2 に答える
8631 参照

java - EntityManager.merge は重複するエンティティを挿入します

私は非常に特別な設定をしています。Java ですべてのクラスを作成し、アプリケーションでそれらを接続します (複数の ManyToOne 関係)。

次に、オブジェクトを反復処理してデータベースに保存したいと思います。場合によっては、オブジェクトがすでにデータベースにある場合、そのオブジェクトを再び永続化するべきではありません。

私は hashCode() と equals() メソッドを正しく実装しましたが、それでも私の em.merge() はオブジェクトを挿入します。

また:

私はいくつかのオブジェクトを作成します。つまり、何人かのプレーヤーを作成し、彼らがどのチームにいるかを設定します。チームは Java では異なるオブジェクトである可能性がありますが、それらの「等しい」方法によれば、それらは同じです。したがって、プレーヤーを保存すると、それに応じてチームを保存する必要がありますが (これは機能します)、チームがデータベースに存在する場合 (equals メソッドに従って)、再度挿入する必要はありませんが、関係を設定する必要があります。コース。

私は何を間違っていますか?さらに情報が必要ですか?

編集

0 投票する
7 に答える
119126 参照

jpa - persistence.xml 構成ファイルなしで JPA EntityManager を作成する

EntityManager永続化ユニットを定義せずに初期化する方法はありますか? エンティティ マネージャーを作成するために必要なすべてのプロパティを指定できますか? EntityManager実行時にユーザーが指定した値からを作成する必要があります。を更新しpersistence.xmlて再コンパイルすることはできません。

これを行う方法についてのアイデアは大歓迎です!

0 投票する
1 に答える
13967 参照

java - 春 + 休止状態 + JPA

今のところ、永続化されたSpringアプリケーションが動作しています。ただし、Hibernate を JPA と共に使用して、すべてのデータベース アクティビティを実行したいと考えています。エンティティマネージャーを使用してこれを行いたいです。

この問題に関する多くのドキュメントやチュートリアルを読んでいますが、persistence.xml ファイルが必要かどうかについて混乱しています。また、applicationContext.xml ファイルの設定方法についても混乱しています。

Spring + Hibernate + JPA + EntityManager を使用して学習するために見るべき良いサイトを知っている人はいますか?

0 投票する
5 に答える
49649 参照

hibernate - EntityManagerの更新の問題

リフレッシュ関数を呼び出すと、EntityManagerからこのエラーが発生します。

これはSpring/Hibernateのバグである可能性があると聞きましたが、これを回避する方法がわかりません。

編集:エラーは