1. ホーム
  2. java

JPA 2 CriteriaQuery、制限を使用する。

2023-11-22 20:52:36

質問

私はJPA 2を使用しています。安全上の理由から、私はCriteriaQueryのタイプセーフで作業しています(したがって、私はタイプドクエリの解決策などを探しているわけではありません)。

私は最近、SQL-LIMITを設定する必要がある問題に出くわしました。

多くの検索を行った後、私はまだ解決策を見つけることに成功していませんでした。

CriteriaQuery<Product> query = getEntityManager().getCriteriaBuilder().createQuery(Product.class);
Root<Product> product = query.from(Product.class);
query.select(product);

return em.createQuery(query).getResultList();

誰か助けてください。

どのように解決するのですか?

定義 制限 オフセット の上に クエリ :

return em.createQuery(query)
         .setFirstResult(offset) // offset
         .setMaxResults(limit) // limit
         .getResultList();

ドキュメントから

TypedQuery setFirstResult(int startPosition)

最初に取得する結果の位置を設定します。パラメータは 開始位置 - 0から始まる最初の結果の位置

TypedQuery setMaxResults(int maxResult)

取得する結果の最大数を設定します。