[SQL] 한계를 사용하여 JPA 2 CriteriaQuery,
SQL한계를 사용하여 JPA 2 CriteriaQuery,
내가 기준 쿼리 유형의 안전을하고 있어요 안전을 위해 JPA 2를 사용하고 (따라서, 내가 입력 한 쿼리에 어떤 해결책을 찾고 있지 않다 등).
나는 최근에 내가 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();
캔 사람의 도움 나?
해결법
-
==============================
1.제한을 정의하고 쿼리에 오프셋 :
제한을 정의하고 쿼리에 오프셋 :
return em.createQuery(query) .setFirstResult(offset) // offset .setMaxResults(limit) // limit .getResultList();
문서에서 :
-
==============================
2.완성도를 위해서, 나는 JPA 기준 API에 관해서 초기 질문에 대답합니다.
완성도를 위해서, 나는 JPA 기준 API에 관해서 초기 질문에 대답합니다.
우선, 당신은 사전에 때 때 사용 사례에 따라 기준 API를 사용하는 JPQL 등을 사용하는 자신을 명확하게 할 수도 있습니다. 내용의 ObjectDB 문서 웹 사이트에서이에 좋은 기사가있다 :
는 JPA 기준 API를 사용하는 방법을 간결하게 설명합니다 때문에 일반적으로이 글을 추천합니다. 쿼리 API에 대한 유사한 글이 있습니다.
질문 가기
예를 들어 - - CriteriaQuery는 접근 제한의 세트를 제공하는 () 메서드를 사용하여. 당신이 직관적으로 추측 할 수 있듯이 : 당신은 이러한 제한과 결과의 특정 번호로 쿼리를 제한 할 수 - 당신은 ([기준 API 폐기의 사용을 만들 것입니다) 고유 식별자에 대한 제한과 같은 사소한 경우를 제외하고는. 간단히 설명 : 한계 기준 아니므 그 API에 의해 덮여 있지. 자세한 내용은 또한 이전하지만 금 자바 EE 문서를 참조하십시오.
해결책
그러나, 당신의 물론 JPQL 쿼리에 대한 기초로 CriteriaQuery 객체를 사용할 수 있습니다. 이다 그래서 첫째, 당신은 당신의 CriteriaQuery를 만들 :
CriteriaQuery<Product> criteriaQuery = getEntityManager().getCriteriaBuilder().createQuery(Product.class); Root<Product> product = criteriaQuery.from(Product.class); criteriaQuery.select(product);
그런 다음 CriteriaQuery 개체에 대한 JPA 쿼리 생성자를 사용 :
Query limitedCriteriaQuery = getEntityManager().createQuery(criteriaQuery) .setMaxResults(resultLimit); // this is the important part return limitedCriteriaQuery.getResultList();
그리고 당신이 문서 및 제공된 문서에 따라 두 API를 사용하는 방법을 기본적으로.
from https://stackoverflow.com/questions/11655870/jpa-2-criteriaquery-using-a-limit by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 어떻게 MySQL의 LIKE 절에서 사용자 변수를 사용하는 방법? (0) | 2020.06.07 |
---|---|
[SQL] 왜 VARCHAR 필요 길이 사양을합니까? (0) | 2020.06.07 |
[SQL] Linq에로 변환 SQL은 널 (null)에 가입 왼쪽 (0) | 2020.06.07 |
[SQL] PostgreSQL를위한 시간에 타임 스탬프 차이 (0) | 2020.06.07 |
[SQL] 생성 SQL 코드 프로그램 (0) | 2020.06.07 |