問題タブ [jpa]

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 投票する
3 に答える
1428 参照

java - JPA と継承

互いに継承し、ディスクリミネーターを使用して作成するクラスを決定するJPAエンティティがいくつかあります(まだテストされていません)。

そのため、SwitchAccounts クラスでは基本クラス Switch を使用したいと考えています。これは、実行時までどのオブジェクトが作成されるかわからないためです。どうすればこれを達成できますか?

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

hibernate - Hibernate エラー「同じエンティティ名を 2 回使用する」の修正

次の Hibernate エラーを修正する方法:

「同じエンティティ名を 2 回使用する」とは何ですか。

0 投票する
6 に答える
1539 参照

java - Java JPAのクエリ「レイヤー」の優れた設計は何ですか

JPA では、エンティティは注釈付きのプレーンな古い Java オブジェクトです。しかし、それらとデータベースを操作する良い方法が見つかりませんでした。

私の現在のアプリでは、基本的な設計は常に主キーとしてシーケンス ベースの ID を持つため、通常は PK 以外のプロパティでエンティティを検索する必要があります。

そして、エンティティごとに、次のステートレス EJB があります。

すべてが何らかのバリエーションであるクエリメソッドを使用

そう:

  1. これらのメソッドがエンティティ自体に属しているように見えるため、EJB にこれらのメソッドを含めるのは本当に嫌いです。また、EJB ローカル インターフェイスは、私を悩ませます。

  2. 「try、createQuery、getResultList、catch、log、return」を使用して各メソッドに重複があるのは嫌いです(ほとんどの場合、クロージャーがないか、「withステートメント」などのJavaの結果です)。

私の問題の 1 つまたは両方に対処するエンティティおよびデータベースとやり取りするためのより良い方法について、誰か提案がありますか?

私は現在、ジェネリックとリフレクションを使用していくつかの基本メソッドを実行して、重複を減らすためにいくつかのジェネリッククエリメソッドを取得することを考えています (問題 2) (後でレビューのためにプロトタイプを公開します)。

ありがとう、アンダース

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

java - java コマンドラインで JPA 準拠の persistence.xml ファイルを指定できますか?

すべての Java クラスを含む UberJar を持っていますが、この jar を外部の persistence.xml ファイルで実行したいと考えています。仕様によると、Hibernate (またはその他の JPA プロバイダー) は、クラスパスにある META-INF フォルダー内の persistence.xml ファイルを探しますが、これを UberJar で機能させることはできませんでした。何か案は?UberJar のクラスローダーは、jar ファイルの内容に制限されていますか?

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

hibernate - Hibernate:現在のレコードと前のレコードの比較

インメモリ Hibernate エンティティの現在の値をデータベースの値と比較したい:

CODEBLOCK#1では、そのnewEntity.getProperty()="new value"ANDを取得しますoldEntity.getProperty()="new value"(もちろん、期待していoldEntity.getProperty()="old value"ましたが)。実際、2 つのオブジェクトはメモリ内でまったく同じです。

いじって、それを取り除くようHibernateSessionFactory.getSession().evict(newEntity)に設定しようとしました(比較のためだけに必要です):oldEntity=null

そして今、2つのエンティティは別個のものですが、もちろん私は恐ろしいorg.hibernate.NonUniqueObjectException: a different object with the same identifier value was already associated with the session.

何か案が?

EDIT:ダブルセッション戦略を試しました。HibernateSessionFactoryセッションのマップを実装するように変更した後...

oldEntity ノートを印刷しようとしているときに、単体テストがハングします... :-(

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

java - エンティティクエリメソッド、「持続」メソッドなどをどこ (どのレイヤー) に配置するか?

いくつかの JPA/Hibernate エンティティを含む SEAM アプリがあります。そして、クエリ、永続化メソッドをどこに置くべきか疑問に思っています。

デフォルトの選択では、注入されたセッション Bean レイヤーに配置されているようです

しかし、エンティティ自体にメソッドが必要だと思います。長所/短所は何ですか?

  1. テスタビリティ?
  2. 素敵?
  3. パフォーマンス?

また、セッション Bean ではなくエンティティのメソッドから EntityManager などと対話するためのベスト プラクティスへのリンクを持っている人はいますか?

ベスト、アンダース

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

java - JPA/Hibernate エンティティ クラスと同期のベスト プラクティスは何ですか?

私が見た JPA/Hibernate エンティティ Bean クラスのほとんどの例では、明示的な同期が行われていないようです。ただし、トランザクションを構築するコンテキストで、これらのオブジェクトに対して getter/setter を呼び出すことは可能です。また、これらのメソッドを複数のスレッドで呼び出すこともできます (ただし、これは異常で奇妙なことかもしれません)。

複数のスレッドにまたがって構築されている場合、オブジェクトの状態への変更が失われる可能性があるようです。これは悲しいことです。

では、同期のベスト プラクティスを除外することはありますか? Hibernate のインストルメント化されたコードは適切な同期を処理していますか?

例として:

手裏剣のメソッドには同期が必要ですか? 私の忍者が手裏剣を失うことは絶対に望んでいません。

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

jpa - JPA - それ自体との複合キーを持つテーブルの多対多の関係

JPA アノテーションを使用して、テーブル (RoutePlace) とそれ自体との多対多の関係を作成したいと考えています。結合したいテーブルの特異点は、複合キーがあることです。

例: https://h4losw2.files.wordpress.com/2008/10/tables.png

代替テキスト

助言がありますか?

前もって感謝します

0 投票する
19 に答える
468348 参照

java - JPA で列のデフォルト値を設定する

JPAで列のデフォルト値を設定することは可能ですか?もしあれば、注釈を使用してどのように行われますか?

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

java - 見つからない場合の例外

何かが見つからない場合にJPAで例外をスローする理由は何ですか?
追加: この動作は EJB2 で見られ、EJB3 からは削除されましたが、NoResultException をスローするQuery#getSingleResult()を呼び出すと残ります。

通常、何かが見つからないことが例外であるとは思いません。実際、これは場合によってはデフォルトの状況である可能性があり、他のほとんどの状況では少なくとも予想される場合です。ビジネス ロジックの一部として例外を使用するべきではなく、それが何であるか、方法がわからない、または処理したくない特殊なケースとしてのみ使用する必要があるという古いことわざを思い出します。

JPAでこのように実装されている理由を知っている人はいますか? 何かが見つからなかったときに null を返すことの欠点は何ですか?