問題タブ [jooq]

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

java - フィールドをコピーから除外する方法

Jooq は、DTO をレコードにコピーできるようにするfrom()メソッドを提供します。

ただし、クライアントが読み取り専用情報を更新しないように、一部のフィールドのみをコピーしたいと考えています。

理想的には、次のようなものを書きたいと思います。

また

3 つのフィールドのみがコピーされます。

もちろん、ゲッター/セッターを手動で呼び出すなどして行うこともできますが、もっと簡単な方法があると思います。

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

java - Jooq でクエリをキャッシュする

プロジェクトで jooq を使用しようとしていますが、パフォーマンス上の理由から、クエリをキャッシュしたいと考えています。パフォーマンスに関する考慮事項のセクションのユーザー マニュアルでは、クエリ キャッシングについて言及されていますが、それを実現する方法についての例はありません。そのため、次のようにクエリ (SimpleSelectConditionStep など) をキャッシュしようとします。

私のソフトウェアはマルチスレッド Web アプリケーションですが、2 つの異なるスレッドが同じクエリを同時に使用できないことが保証されています (プールは、プールに再度配置される前に同じクエリを返さない)。

factory がスレッドセーフオブジェクトではないことは知っていますが、コードでこのようなクエリを使用すると問題が発生する可能性がありますか?

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

java - JOOQ で @variable を使用するにはどうすればよいですか?

Jooq で以下の MySql クエリのようなものを達成しようとしています。

JOOQ で @variable を使用するにはどうすればよいですか?

注:JOOQのCASE WHENに相当することは知っていますが、@変数を知りたいだけです。

Jooq バージョン:3.0.1

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

java - JOOQ での行レベル セキュリティの実装

JOOQ ライブラリを使用して Java で Oracle の行レベル セキュリティのような機能を実装したい

JOOQ クエリ コードの例を次に示します。

上記のコードは、以下のように SQL を生成します。

以下のように、ユーザー セキュリティに固有のデータをフィルター処理する where 句を追加します。

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

java - Jooq で VIEW ステートメントを作成する

Jooq を使用してビュー ステートメントを作成しようとしています。

または、他に選択肢はありますか?

Jooq バージョン: 3.0.1

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

java - jooq からのフェッチ/結果を特定のレコードにマップする

現在、Jooq を使用してクエリを実行すると、各レコード オブジェクトが期待されるレコード タイプに明示的にキャストされます。

Jooq を使用して、結果を目的のレコード型に直接キャストすることは可能ですか?

など (これはコンパイルされません):

0 投票する
8 に答える
19714 参照

java - 完全なORM(JPA / Hibernate)をより軽いソリューションに置き換える:ロード/保存の推奨パターンは?

私は新しい Java Web アプリケーションを開発しており、データを永続化するための新しい方法 (私にとっては新しい!) を模索しています。私は主にJPAとHibernateの経験がありますが、単純なケースを除いて、この種の完全なORMは非常に複雑になる可能性があると思います. さらに、私は彼らと一緒に仕事をするのがあまり好きではありません。おそらくSQLに近い新しいソリューションを探しています。

私が現在調査している解決策:

しかし、Hibernate と比較して、これらのソリューションには 2 つのユース ケースについて懸念があります。これらのユースケースで推奨されるパターンを知りたいです。


ユース ケース 1 - エンティティを取得し、関連付けられた子エンティティと孫エンティティの一部にアクセスします。

  • Person私がエンティティ を持っているとしましょう。
    • これPersonには関連付けられたAddressエンティティがあります。
      • これAddressには関連付けられたCityエンティティがあります。
        • このCityエンティティにはnameプロパティがあります。

person エンティティから始まる都市の名前にアクセスするためのフル パスは、次のようになります。

PersonServiceここで、このメソッドを使用して、から Person エンティティをロードするとします。

Hibernate を使用すると、に関連付けられたエンティティPersonをオンデマンドで遅延ロードできるためperson.address.city.name、このプロパティにアクセスして、確実にアクセスできるようになります (そのチェーン内のすべてのエンティティが null 許容でない限り)。

しかし、私が調査している 3 つのソリューションのいずれかを使用すると、より複雑になります。これらのソリューションでは、このユース ケースを処理するために推奨されるパターンは何ですか? 前もって、3 つのパターンが考えられます。

  1. 必要なすべての関連付けられた子エンティティと孫エンティティは、使用された SQL クエリによって熱心に読み込まれます。

    しかし、このソリューションで見られる問題は、エンティティから他のエンティティ/プロパティ パスにアクセスする必要がある他のコードが存在する可能性があることPersonです。たとえば、一部のコードは へのアクセスが必要になる場合がありますperson.job.salary.currency。既に持っているメソッドを再利用したい場合はfindPersonById()、SQL クエリでさらに情報をロードする必要があります。address->city関連エンティティだけでなく、関連エンティティもjob->salary

    person エンティティから始まる他の情報にアクセスする必要がある場所が他に10か所ある場合はどうなるでしょうか。潜在的に必要なすべての情報を常に熱心にロードする必要がありますか? または、個人エンティティをロードするために 12 の異なるサービス メソッドを使用することはありますか? :

    しかし、Personエンティティを使用するたびに、何がロードされていて何がロードされていないかを知る必要があります...それはかなり面倒ですよね?

  2. エンティティのgetAddress()getter メソッドでPerson、アドレスが既に読み込まれているかどうかを確認し、読み込まれていない場合は遅延読み込みを行うことができますか? これは、実際のアプリケーションで頻繁に使用されるパターンですか?

  3. ロードされたモデルから必要なエンティティ/プロパティに確実にアクセスできるようにするために使用できる他のパターンはありますか?


ユース ケース 2 - エンティティを保存し、関連付けられたエンティティと変更されたエンティティも保存されることを確認します。

thisのメソッドPersonを使用してエンティティを保存できるようにしたい:PersonService

Personエンティティがあり、別のものに変更した場合、エンティティの変更が保存されてperson.address.city.nameいることを確認するにはどうすればよいですか? Hibernate を使用すると、保存操作を関連付けられたエンティティに簡単にカスケードできます。私が調査しているソリューションはどうですか?CityPerson

  1. 人を保存するときに、関連付けられているエンティティも保存する必要があることを知るために、何らかのダーティフラグを使用する必要がありますか?

  2. このユースケースに対処するのに役立つ既知のパターンは他にありますか?


更新:JOOQ フォーラムでこの質問についての議論があります。