問題タブ [jpa-2.0]
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.
installation - データベースの初期化をどのように処理しますか?
ここでも説明されているように、アプリケーションのデータベースを初期化および更新するための最良の方法を決定しようとしています。EclipseLink-JPA2を使用しています。NetBeansプラットフォームアプリケーションを配布します。
考慮されるオプション:
create-tables ddl-generationを使用する:これに伴う問題は、アプリケーションが実行されるたびに例外がスローされ、テーブルの作成に失敗することです。セットアップ時にのみ役立ちます。これは、モジュールのrestored()メソッドにチェックコードを配置するのと似ています。
データベースをアプリケーション配布に含めます。ddl生成戦略は何もしません。(開発時に)JPAを使用して、データベースファイル(埋め込みJava DB)を生成することもできます。
最善の解決策は、インストーラー/セットアップ(初回)がデータベースを作成する初期化コードを呼び出すことです。これはまさに私がここでJWSを使って行うことです。しかし、私はJWSなしでそれを行う方法を知りません。インストーラーによって実行されるスクリプト/jar?
java - アプリケーションフォルダに相対的なpersistence.xmlでjdbc.urlを指定する方法は?
JPA を使用してアプリケーションをデプロイすると、ユーザーはそれをどこかにインストールすることを選択します。ただし、プロパティは次のように設定されます。
次の例外に解釈されます: \db にデータベースを作成できませんでした。開発中は、現在のようにルートではなく、プロジェクト フォルダーへの相対パスでした。アプリケーションがインストールされているフォルダーからの相対パスを維持するにはどうすればよいですか? または、さらに悪いことに、userdir.
java - EclipseLink: 現在のトランザクション分離レベルをチェックしています
EclipseLink 2.0.1 を使用するスタンドアロン Java アプリケーションがあります。これは persistence.xml によって構成され、次のようなことを行います。
どのデータベース トランザクション分離レベルが実際にそのトランザクションに適用されるかを知りたいです。「汚いデバッグのみ」の解決策でさえ役に立ちます。
EclipseLink のドキュメントでは、次のように説明されています。
EclipseLink アプリケーションで特定のデータベース トランザクション分離レベルを達成することは、単純に DatabaseLogin メソッド setTransactionIsolation を使用するよりも複雑です。
そのため、希望する分離レベルが適用されることを確認したいと思います!
java - Hibernate EntityManager (vs. Hibernate Core) を使用することの欠点はありますか?
Hibernate EntityManager のドキュメントには、次のように記載されています。
プロジェクトのビジネスおよび技術的なニーズに応じて、JPA プログラミング インターフェイスとライフサイクルのないアノテーション、または純粋なネイティブ Hibernate Core でさえ、3 つすべてを組み合わせて使用することができます。いつでも Hibernate のネイティブ API にフォールバックできます。必要に応じて、ネイティブの JDBC と SQL にフォールバックすることもできます。
JPA API (EntityManager) を使用するコードは明らかに移植性が高くなります (Hibernate Core へのフォールバックがときどきある場合でも)。
しかし、純粋に Hibernate Core を使用する場合、何か利点がありますか? JPA 2 モデルは本当に矛盾なく Hibernate Core に適合するのでしょうか? IOW さん、コアへのフォールバックは常に簡単で、問題はありませんか?
私の主な関心事はこれです:
違いは API だけでなく、基礎となるセマンティクスにもあるのではないでしょうか?! (たとえば、競合する可能性のある異なるトランザクション/バージョン管理/ロックのセマンティクス: 悲観的ロックはコアのドキュメントに記載されていますが、EntityManager のドキュメントには記載されていません。したがって、問題を引き起こさずにコアにフォールバックすることで悲観的ロックを使用できますか?そのようなこと.. .)
java - JPA 2を使用して複数のデータソースに接続するにはどうすればよいですか?
MSSQLに2つのデータベースがあり、JPA2を使用してそれらに接続したいのですが、1つで動作させることができました。誰かが私にそれをどのように行うのを手伝ってもらえますか?
どうもありがとう。
java - JPAの2つの列でSUMのような集計関数を実行し、その結果を表示するにはどうすればよいですか?
私はJPAを初めて使用します。ですから、私の質問はとても単純なものでなければなりません。
以下は、JPAに変換したいSQLの単純なクエリです。私はすでに。というエンティティクラスを持っていますTimeEnt
。
orm - JPAの起動が遅い
データベース全体 (最大 200 テーブル) 用の JPA 2.0 エンティティ クラスを作成しました。アプリケーションを再構築して初めて起動するたびに、次のメッセージが表示されます。
また、Glassfish でのこれらの (情報) メッセージの出力は非常に遅く、アプリケーションの起動に約 1 分 (!) かかります。
メッセージが問題だと思います。Glassfish コンソールが Netbeans ウィンドウでフリーズし (メッセージが出力されない)、プロセス全体に約 5 秒かかることがあるためです。
これらのメッセージを無効にする方法が見つかりませんでした。速度を上げる方法はありますか?
java - コンパイラがメタモデル属性を認識しないのはなぜですか?
eclipselink jpa2の基準APIは、Java se 6プロジェクトでサポートされていますか?そうでなければ、それが私の問題です。永続性.xmlで基準APIに特別なものを指定する必要がありますか?
これは私の基準クエリです:
そして、これが私の意味の実体です:
orm - JPA - 双方向関係の要素の削除
リレーションの片側のみが永続コンテキストで管理されているのに、双方向リレーションの要素を削除できるのはなぜですか (例 I)? 機能しない一方向のリレーションシップがある場合 (例 II を参照)。なんで?
エンティティ:
例 I:
例 II:
最初の例では、これらの内部メソッドを使用して、それぞれの場合に関係の反対側を設定しますが、この反対側は永続コンテキストで管理されていないと思いますか?! ユーザーのプロセスを変更してユーザーを保存すると、cascade.MERGEを使用しない限り、または両方がトランザクションに読み込まれてPCで管理されていない限り、プロセスは更新されません。では、なぜ除去が機能するのでしょうか。
java - jpa 2基準APIで特定の列を選択していますか?
JPA 2 Criteria APIを使用して特定の列を選択する方法はありますか?
以下は、対象の SQL ステートメントです。
Hibernate の Criteria API を使用すると、Projections を使用してこれを行うことができます。JPA 2 Criteria 仕様に相当するものはありますか?