[[JHIPSTER一覧]] *** 目次 [#p4305405] #contents *** はじめに [#vee8edef] このページは、 https://www.jhipster.tech/entities-filtering/ のgoogle訳を、ほぼそのまま張り付けて、レイアウトを整えて、コメントを付けたものです。 JHIPSTERのバージョンは6です。 * 前書き [#e29cf271] 基本的なCRUD機能がエンティティに実装された後は、エンティティの属性に対してさまざまなフィルタを作成するという非常に一般的な要求があるため、サーバーをより効果的に使用できます。これらのフィルタはリクエストパラメータとして送信する必要があります。そのため、どのクライアント(およびどのブラウザ)でも簡単に使用できます。さらに、これらのフィルタは、正当で簡潔なパターンに従うべきであり、それらを自由に組み合わせることを許可されなければなりません。 * 有効化する方法 [#ybf7736b] jhipster entity コマンドを使用してエンティティを生成するときは、このエンティティでフィルタリングを有効にするためにサービスまたはサービス実装を選択します。 既存のエンティティのフィルタリングを有効にしたい場合は.jhipster、serviceto serviceClass、serviceImplfrom no、jpaMetamodelFilteringto 、toに設定してからtrue再生成して、projects ディレクトリ内のエンティティ設定を変更できますjhipster entity <entity name>。 JDLを使用する場合はfilter <entity name>、JDLファイルに1行追加して、jhipster import-jdlcommandを使用して定義を再インポートしてください。 * 公開インターフェース [#r57198a5] エンティティごとにエンティティジェネレータでフィルタリングを有効にし、その後、/api/my-entity以下のパラメータを使用してGETエンドポイントを呼び出すことができます。 - 各xyzフィールド -- xyz.equals = someValue --- xyzが 'someValue'に等しいすべてのエンティティを一覧表示する xyz.in = someValue、otherValue xyzが 'someValue'または 'otherValue'に等しいすべてのエンティティを一覧表示する xyz.specified = true xyzがnullではないすべてのエンティティを一覧表示するには、指定します。 xyz.specified = false xyzがNULLのすべてのエンティティーをリストするには、指定なし。 xyzの型が文字列の 場合 xyz.contains =何か xyzに 'something'が含まれているすべてのエンティティを一覧表示します。 xyzが数値タイプまたは日付タイプのいずれかである 場合 xyz.greaterThan = someValue xyzが 'someValue'より大きい場合、すべてのエンティティを一覧表示します。 xyz.lessThan = someValue xyzが 'someValue'より小さいすべてのエンティティを一覧表示します。 xyz.greaterOrEqualThan = someValue xyzが 'someValue'以上の場合、すべてのエンティティを一覧表示します。 xyz.lessOrEqualThan = someValue xyzが 'someValue'以下であるすべてのエンティティを一覧表示します。 もちろん、それらは自由に組み合わせることができます。 このフィルタAPIの表現力を体験する良い方法は、あなたのJHipsterアプリケーションのAPIドキュメントページのswagger-uiからそれを使うことです。 * 実装 [#zab8816d] この機能を有効にするEntityQueryServiceと、and という名前の新しいサービスEntityCriteriaが生成されます。SpringはリクエストパラメータをEntityCriteriaクラスのフィールドに変換します。 では、EntityQueryServicecriteriaオブジェクトを静的でタイプセーフなJPAクエリオブジェクトに変換します。そのためには、ビルドで静的メタモデル生成を有効にする必要があります。詳細はJPA Static Metamodel Generatorのドキュメントを参照してください。 生成された基準が機能し、Springが適切に設定EntityResourceIntTestされていることを証明するために、個々のフィルタごとに1つずつ、多数のテストケースが追加されています。 * 制限事項 [#sbf10fb6] 現在サポートされているのは(JPAを使用した)SQLデータベースのみで、個別のサービスまたは個別のサービス実装/インタフェースの組み合わせがあります。