ホームページ >データベース >mysql チュートリアル >複数の値を持つ JPQL の IN 句を効率的に使用するにはどうすればよいですか?

複数の値を持つ JPQL の IN 句を効率的に使用するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-30 18:10:101021ブラウズ

How Can I Efficiently Use JPQL's IN Clause with Multiple Values?

JPQL IN 句の拡張: リストとコレクションの利用

JPQL は、特定の値のセットに基づいてエンティティをフィルタリングするための IN 句を提供します。ただし、任意の数の値が含まれるシナリオの場合、各パラメーターを明示的に指定するのは面倒で非効率になる可能性があります。この記事では、配列、リスト、セットなどのコンテナを使用して IN 句の値を拡張する可能性について検討します。

質問に直接答えるために、JPQL 2.0 ではコレクションをパラメータとして IN 句に渡すサポートが導入されました。これにより、各値を手動で指定する必要がなくなり、コード構造が簡素化されます。

次の Java コードは、リストを使用してこの機能を示しています。

String qlString = "select item from Item item where item.name IN :names";
Query q = em.createQuery(qlString, Item.class);

List<String> names = Arrays.asList("foo", "bar");

q.setParameter("names", names);
List<Item> actual = q.getResultList();

assertNotNull(actual);
assertEquals(2, actual.size());

EclipseLink はこの構文をサポートしていることに注意してください。 , Hibernate 3.5.1 ではパラメータを括弧で囲む必要があります (既知のバグ)。

以上が複数の値を持つ JPQL の IN 句を効率的に使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。