2012-07-25 8 views
41

私はJPA 2を使用しています。安全上の理由から、CriteriaQueryで安全なタイプの作業をしています(したがって、型付きクエリの解決策などは探していません)。 私は最近、SQL-LIMITを設定する必要がある問題を発見しました。JPA 2 CriteriaQuery(制限値を使用)

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

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

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

誰でも手伝ってもらえますか?

答えて

100

Querylimitoffsetを定義します。

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

ドキュメントから:

TypedQuery setFirstResultメソッド(int型開始位置)

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

TypedQueryのはsetMaxResults(INT maxResult)検索結果の最大数を設定

から数えて最初の結果の位置、。

+0

これは、javax.persistence.criteria.CriteriaQueryでこれを行う方法の元の質問には対処しません。受け入れられたソリューションでは、現在廃止予定のcreateCriteria()関数が使用されています。 –

関連する問題