問題タブ [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.
java - JPA と継承
互いに継承し、ディスクリミネーターを使用して作成するクラスを決定するJPAエンティティがいくつかあります(まだテストされていません)。
そのため、SwitchAccounts クラスでは基本クラス Switch を使用したいと考えています。これは、実行時までどのオブジェクトが作成されるかわからないためです。どうすればこれを達成できますか?
hibernate - Hibernate エラー「同じエンティティ名を 2 回使用する」の修正
次の Hibernate エラーを修正する方法:
「同じエンティティ名を 2 回使用する」とは何ですか。
java - Java JPAのクエリ「レイヤー」の優れた設計は何ですか
JPA では、エンティティは注釈付きのプレーンな古い Java オブジェクトです。しかし、それらとデータベースを操作する良い方法が見つかりませんでした。
私の現在のアプリでは、基本的な設計は常に主キーとしてシーケンス ベースの ID を持つため、通常は PK 以外のプロパティでエンティティを検索する必要があります。
そして、エンティティごとに、次のステートレス EJB があります。
すべてが何らかのバリエーションであるクエリメソッドを使用
そう:
これらのメソッドがエンティティ自体に属しているように見えるため、EJB にこれらのメソッドを含めるのは本当に嫌いです。また、EJB ローカル インターフェイスは、私を悩ませます。
「try、createQuery、getResultList、catch、log、return」を使用して各メソッドに重複があるのは嫌いです(ほとんどの場合、クロージャーがないか、「withステートメント」などのJavaの結果です)。
私の問題の 1 つまたは両方に対処するエンティティおよびデータベースとやり取りするためのより良い方法について、誰か提案がありますか?
私は現在、ジェネリックとリフレクションを使用していくつかの基本メソッドを実行して、重複を減らすためにいくつかのジェネリッククエリメソッドを取得することを考えています (問題 2) (後でレビューのためにプロトタイプを公開します)。
ありがとう、アンダース
java - java コマンドラインで JPA 準拠の persistence.xml ファイルを指定できますか?
すべての Java クラスを含む UberJar を持っていますが、この jar を外部の persistence.xml ファイルで実行したいと考えています。仕様によると、Hibernate (またはその他の JPA プロバイダー) は、クラスパスにある META-INF フォルダー内の persistence.xml ファイルを探しますが、これを UberJar で機能させることはできませんでした。何か案は?UberJar のクラスローダーは、jar ファイルの内容に制限されていますか?
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 ノートを印刷しようとしているときに、単体テストがハングします... :-(
java - エンティティクエリメソッド、「持続」メソッドなどをどこ (どのレイヤー) に配置するか?
いくつかの JPA/Hibernate エンティティを含む SEAM アプリがあります。そして、クエリ、永続化メソッドをどこに置くべきか疑問に思っています。
デフォルトの選択では、注入されたセッション Bean レイヤーに配置されているようです
しかし、エンティティ自体にメソッドが必要だと思います。長所/短所は何ですか?
- テスタビリティ?
- 素敵?
- パフォーマンス?
また、セッション Bean ではなくエンティティのメソッドから EntityManager などと対話するためのベスト プラクティスへのリンクを持っている人はいますか?
ベスト、アンダース
java - JPA/Hibernate エンティティ クラスと同期のベスト プラクティスは何ですか?
私が見た JPA/Hibernate エンティティ Bean クラスのほとんどの例では、明示的な同期が行われていないようです。ただし、トランザクションを構築するコンテキストで、これらのオブジェクトに対して getter/setter を呼び出すことは可能です。また、これらのメソッドを複数のスレッドで呼び出すこともできます (ただし、これは異常で奇妙なことかもしれません)。
複数のスレッドにまたがって構築されている場合、オブジェクトの状態への変更が失われる可能性があるようです。これは悲しいことです。
では、同期のベスト プラクティスを除外することはありますか? Hibernate のインストルメント化されたコードは適切な同期を処理していますか?
例として:
手裏剣のメソッドには同期が必要ですか? 私の忍者が手裏剣を失うことは絶対に望んでいません。
jpa - JPA - それ自体との複合キーを持つテーブルの多対多の関係
JPA アノテーションを使用して、テーブル (RoutePlace) とそれ自体との多対多の関係を作成したいと考えています。結合したいテーブルの特異点は、複合キーがあることです。
例: https://h4losw2.files.wordpress.com/2008/10/tables.png
助言がありますか?
前もって感謝します
java - JPA で列のデフォルト値を設定する
JPAで列のデフォルト値を設定することは可能ですか?もしあれば、注釈を使用してどのように行われますか?
java - 見つからない場合の例外
何かが見つからない場合にJPAで例外をスローする理由は何ですか?
追加:
この動作は EJB2 で見られ、EJB3 からは削除されましたが、NoResultException をスローするQuery#getSingleResult()を呼び出すと残ります。
通常、何かが見つからないことが例外であるとは思いません。実際、これは場合によってはデフォルトの状況である可能性があり、他のほとんどの状況では少なくとも予想される場合です。ビジネス ロジックの一部として例外を使用するべきではなく、それが何であるか、方法がわからない、または処理したくない特殊なケースとしてのみ使用する必要があるという古いことわざを思い出します。
JPAでこのように実装されている理由を知っている人はいますか? 何かが見つからなかったときに null を返すことの欠点は何ですか?