キーカラムオペレーターの取り扱い
デフォルトでは、サポートされているすべてのオペレーターがJira API に直接渡され、効率的なサーバーサイドフィルタリングが可能になります。ただし、クエリに無効なId またはキー値が含まれている場合、 このアプローチは一貫性のない結果につながる可能性があります。Jira Cloud では、UseJqlSearchEndpoint 設定によっては、無効なフィルタがエラーをスローする代わりに0件の結果を返す場合があります。 一方、Jira Data Centerでは、API エラーが発生する可能性があります。KeyColumnOperators 接続プロパティを使用して、この動作を制御できます。
デフォルトでは、KeyColumnOperators はServer-Side に設定されています。
- サポートされているすべてのオペレーターがそのままJira API に送信されます。
- レガシーエンドポイント(UseJqlSearchEndpoint がFalse に設定されている場合)またはJira Data Centerでは、無効なフィルタ値が提供された場合にAPI エラーが発生する可能性があります。
- UseJqlSearchEndpoint がtrue(デフォルト)に設定されているJira Cloud では、無効なキーまたはID を持つフィルタに対してAPI はエラーをスローしません。代わりに0件の結果を返します。 例えば、id > 123(123が有効な課題ID でない場合)のようなJQL フィルタは、失敗するのではなく0件の結果を返します。この動作は、完全な結果セットを期待している場合に 一貫性のない結果につながる可能性があります
一貫した結果を確保するために、KeyColumnOperators 接続プロパティをClient-Side に設定できます。このモードでは、ID およびKey カラムに適用される以下のオペレーターは、 Jira API に送信されるJQL に含まれるのではなく、connector によってクライアントサイドで処理されます。
- 論理演算子:OR
- 比較演算子:IN、NOT IN、>、>=、<、<=、!=
これらのオペレーターをクライアントサイドで処理することにより、connector は、単一の無効な値によってクエリ全体が失敗したり、0件の結果が返されたりする可能性のある厳密なサーバーサイドフィルタリングルールを回避します。 ただし、このプロパティを有効にするとパフォーマンスに影響を与える可能性があります。
- IN フィルタの場合、connector は各値に対して個別のリクエストを実行するため、クエリの実行時間が増加する可能性があります。
- その他のフィルタの場合、connector がクライアントサイドでフィルタを適用する前にすべてのレコードを取得するため、追加の処理によりクエリに時間がかかる場合があります。