1

JPAでは、クエリを作成する際に、実行できます

(" ... where a.name = :name ...")
.setParameter("name", user.getName());

ただし、JPQLでできる方法があるかどうかを期待しています:

(" ... where a.name in (:namelist) ...")
.setParameter("namelist", (List<String>)names);

また

" ... where a.name in (:namelist) ...")
.setParameter("namelist", (String[])names);

上記の例とまったく同じである必要はありません。IN (または NOT IN) リストをクエリに組み込む便利な方法を探しています。どんな形の提案も歓迎します。おそらく、Apache ユーティリティがありますか?

それ以外の場合は、クエリを作成し、アイテムを繰り返し IN リストに挿入する必要があります。

4

1 に答える 1

1

JPA2以降、次の場合はそのまま使用できます。

select a from Something a where a.name in :param

ここで、:param は適切な型のコレクションです。お気に入り:

List<Product> products =
    em.createQuery("select p from Product p where p.productId in :ids")
    .setParameter("ids", Arrays.asList(980001, 980032, 986712)).getResultList();
于 2012-07-18T17:00:24.873 に答える