問題タブ [eclipselink]

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

google-app-engine - Google AppEngineでJPA2.0を使用できますか?

Google AppEngineでJPA2.0(EclipseLinkなど)を使用できますか?

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

jpa - 結合された継承戦略のためにEclipseLinkが識別子列を追加するのはなぜですか?

EclipseLink JPA 実装で JOINED 継承戦略を使用しています。EclipseLink が、デフォルトで DTYPE という名前の識別子列をデータベース スキーマに追加していることに気付きました。1つのテーブル継承戦略にはディスクリミネーターが必要であることは理解していますが、JOINED戦略にはなぜですか?

削除後にエラーが発生したため、EclipseLink にはこの列が必要です。この列は、パフォーマンス上の理由などで追加されていますか? データベース スキーマの観点から見ると、この列は不必要に雑然としているだけなので、特に満足しているわけではありません。

Hibernate ベースの JPA は同様のことをしません。

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

java - JPAとPostgreSQL

私は、JPAのEclipseLink実装を使用してPostgreSQLデータベースと通信するプロジェクトに参加しています。PostgreSQL NOTIFY/LISTENが最適と思われるタスクがあります。残念ながら、私はJPAの初心者であり、それを機能させる方法を見つけるのに苦労しています。ですから、私は本当に2つの質問があると思います。どちらかに答えると幸せになります。

1)データベースへの直接JDBC接続を取得するための最良の方法は何ですか?(これがタイプであることが証明されることを心から願っていますorg.postgresql.PGConnection。)

また

org.postgresql.PGConnection.getNotifications()2) EclipseLink JPAを介してエミュレート/アクセスするための最良の方法は何ですか?

ご助力ありがとうございます。


編集: 2つの実用的なソリューション!私はこのサイトが大好きです。チェックマークを配る前に、PascalまたはBalusのソリューションを他のソリューションよりも優れたものにする隠れた落とし穴/利点について誰かが何か言いたいことがあれば、それを聞きたいと思います。

0 投票する
3 に答える
354 参照

java - 読み込み時に JPA 列のマッピングを確認する

現在のプロジェクトでは、最近、DB スキーマが大幅に変更されました。これらは主に、すべての列が一貫した命名パターンに従い、 all_in_snake_case であることを確認するなど、スタイルのクリーンアップでした。

DB とエンティティのすべての列参照を取得したと思いますが、JPA、EclipseLink、または GlassFish に何らかの「すべてを検証」操作を実行させて、各エンティティ列が存在し、一致していることを確認することは可能ですか??

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

java - リストを永続化するときに文字列の一意のテーブルを作成する際の問題

エンティティがあるとします:

私はEclipseLink(JPA 2.0)を使用しています。

このリスト内の文字列は、多くの AnEntity オブジェクトで同じ値を持つ場合があります。つまり、多くの AnEntity オブジェクトが同じ文字列を参照する可能性があります。

問題は、@ElementCollection が提供するデフォルトのマッピングが文字列のテーブル (ANENTITY_STRINGS) に多くの重複を残すことです。文字列のリストを保存するときに値を一意に保存して、重複する文字列の膨大なテーブルがないようにするにはどうすればよいですか?


文字列である単一のメンバーを持つ「プレースホルダー」クラスを使用しようとしたことを追加する必要があります。残念ながら、このようにすると、関連付けられたテーブルのデータが完全に読み取れなくなります。blob または lob として保存されているはずです。したがって、たとえば、リストを使用する代わりに、次のようなことを行いました。

そして、私のエンティティは次のようになります。

しかし、私が言ったように、それは ANENTITY_STRINGS にちょうどバイトを入れます。これが「正しい」方法だとは想像できません。

0 投票する
0 に答える
937 参照

jpa - EclipseLink 1.1でWhere-In句を構築するためのベスト・プラクティス

私は EclipseLink 1.1 を使用するプロジェクトに参加しており、次のように Where-In 句を使用することが明らかなクエリがあります。

もちろん、これは作りたての FAIL のバッチであり、実行時に次のように泣き言を言います。

java.lang.IllegalArgumentException: You have attempted to set a value of type class java.util.ArrayList for parameter things with expected type of class java.lang.String from query string ....

グーグルで調べてみると、EclipseLink 1.1 はこのようなパラメーターへのリストのダンプを単にサポートしていないことがわかります。けっこうだ。この欠陥を回避するにはどうすればよいでしょうか?

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

java - javax.persistence.OptimisticLockExceptionをどのように処理する必要がありますか?

私はJPAを初めて使用するので、はっきりしない場合はご容赦ください。

基本的に、オプティミスティックロックを使用して同時変更を防ぎたいです。@Version属性をエンティティクラスに追加しました。

OptimisticLockExceptionの処理に関するこのアルゴリズムが適切かどうかを知る必要があります。ExecuteAroundIdiomを次のように使用します。

私が持っている質問は、再試行をいつ停止するかをどのように決定するかです。

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

java - 検索/選択後に呼び出されるDescriptorEventAdapterを使用して実装されたJPAPreUpdate

JPA(eclipselink)用のDescriptorEventAdapterを実装しました。単純なタイムスタンプ操作を実行します。preUpdateメソッドが呼び出されていますが、頻繁に呼び出されています。検索/選択操作でも呼び出され、タイムスタンプが更新されます。

私が遭遇している問題は、別のJPAフレームワークでも発生しているようです。http ://markmail.org/message/nank44rgp4xi2ita#query:JPA%20preupdate%20being%20called%20after%20find + page:1 + mid :xssqpg7hm4mesfl5 + state:results

私は次のことを試みました:

  • DescriptorEventのChangeSetを確認してください。これは常にnullです。
  • DescriptorEventのコードを確認してください。これは常に6です。

「このオブジェクトは本当に更新されました」という他のフラグや属性を見つけることができませんでした。

レコードが実際に更新され、単に選択されただけではない場合にのみpreUpdateを機能させるにはどうすればよいですか?

0 投票する
4 に答える
308 参照

java - クラスに有効なJPA定義があることをプログラムでチェックする最も簡単な方法

注釈付きなどの多くのクラスで作業していますjavax.persistence.Entity。私のプロジェクトは、永続性自体ではなく、JPA注釈付きクラスに関するメタデータを生成することを目的としているため、それらをテストケースとして使用しています。

Hibernateやその他のJPAプロバイダーを起動するのではなく、プログラムで(単体テストの一部として)、JPA宣言が実際に有効であることを確認したいと思います。

それを行う最も簡単な方法は何ですか?