13.4.15. IN 述語について
IN 述語は、特定の値が値の一覧にあることを確認します。構文は次のとおりです。
single_valued_expression のタイプと single_valued_list の個別の値は一致している必要があります。JPQL は、有効なタイプを文字列、数値、日付、時間、タイムスタンプ、および列挙タイプに制限します。JPQL では、single_valued_expression は以下のみを参照できます。
- 「状態フィールド」(state fields) は、単純な属性の用語です。具体的には、関連付けおよびコンポーネント/組み込み属性が除外されます。
- エンティティー型式。
HQL では、
single_valued_expression はより幅広い式タイプを参照することができます。1 価の関連づけが許可されています。コンポーネント/組み込み属性も同様です。ただし、この機能は基盤のデータベースのタプルのサポートレベルまたは「ロー値のコンストラクター構文」 (row value constructor syntax) によって異なります。さらに、HQL では値のタイプは制限されませんが、アプリケーション開発者は、基盤のデータベースベンダーに基づいてサポートが制限される可能性があることに注意する必要があります。これは、通常 JPQL の制限のためです。
値の一覧は多数の異なるソースから取得できます。
constructor_expression およびcollection_valued_input_parameter では、値の一覧は空にすることはできません。少なくとも 1 つの値が含まれている必要があります。
例13.19 述語の例では