jpql 예제

다음 예제에서 findWithName 비즈니스 메서드는 입력 매개 변수를 사용 하 여 다시 작성 됩니다. 예를 들어 웹 페이지의 여러 데이터 페이지를 탐색할 때 유용합니다. 다형성 쿼리를 지원하는 상속 전략을 선택하면 쿼리에서 지정된 클래스 및 해당 하위 클래스의 모든 인스턴스를 선택합니다. 이 블로그 게시물의 예제에 있는 모델을 사용하면 책 또는 BlogPost 엔터티인 모든 게시 엔터티를 선택할 수 있습니다. JPQL을 사용하면 SELECT 절에서 생성자 호출을 정의할 수 있습니다. 다음 코드 조각에서 예제를 볼 수 있습니다. 정규화된 클래스 이름을 제공하고 기존 생성자의 생성자 매개 변수를 지정하기만 하면 됩니다. 엔터티 프로젝션과 마찬가지로 최대 절전 모드는 필요한 데이터베이스 열을 반환하고 생성자 참조를 사용하여 결과 집합의 각 레코드에 대한 새 개체를 인스턴스화하는 SQL 쿼리를 생성합니다. JPQL의 세부 정보를 살펴보기 전에 모든 예제에 사용하는 엔터티 모델을 간략하게 살펴보겠습니다. 하위 쿼리는 하나 또는 여러 개의 레코드를 반환할 수 있으며 외부 쿼리에 정의된 별칭을 사용할 수 있습니다. 다음 예제에서는 하위 쿼리를 사용하여 작성자가 작성한 모든 책을 계산하고 1개 이상의 책을 작성한 저자만 반환하는 쿼리를 보여 옵니다.

다음 코드 조각은 aggregate function count()를 사용하여 각 성이 Author 테이블에서 발생하는 빈도를 계산하는 예제를 보여 주며 있습니다. 이 예제에서는 업데이트 쿼리를 사용하여 직원에게 인상을 주는 방법을 보여 줍니다. WHERE 절에는 조건식이 포함되어 있습니다. 관련없는 엔터티의 JOIN은 JPA 사양에서 지원되지 않지만 카르테시안 제품을 만들고 WHERE 절에서 외국 키와 기본 키를 일치하는 레코드로 제한하는 세타 조인을 사용할 수 있습니다. 다음 예제에서는 이 방법을 사용하여 Book을 출판사 엔터티와 함께 조인합니다. 위의 예에서는 SQL 쿼리 및 메서드 매개 변수가 동일한 이름을 갖도록 정의했지만 값 문자열이 동일하다면 필요하지 않습니다. 그 중 작성자 테이블에서 발생합니다. INNER JOI는 이전 예제의 것과 마찬가지로 선택한 엔터티가 조인 조건을 충족하도록 요구합니다. 쿼리는 연결된 Book 엔터티가 있는 작성자 엔터티만 반환했지만 데이터베이스에 Book 엔터티가 포함되지 않은 엔터티는 반환되지 않았습니다. 게시된 책없이 저자를 포함하려면 다음 코드 조각과 같이 LEFT JOIN을 사용해야 합니다.

위의 예제에서는 페이지 매김 매개변수의 자리 표시자로 “n– #pageablen”을 추가합니다. 이렇게 하면 스프링 데이터 JPA가 쿼리를 구문 분석하고 페이지 가능한 매개 변수를 삽입하는 방법을 알려줍니다. 이 솔루션은 H2 데이터베이스에 대해 작동합니다. 작성자 엔터티의 정의는 최대 절전 모드가 북 엔터티에 조인하는 데 필요한 모든 정보를 제공하며 추가 ON 문을 제공할 필요가 없습니다. 이 예제에서 최대 절전 모드는 작성자 및 Book 엔터티의 기본 키를 사용하여 다대다 연결의 연결 테이블을 통해 조인합니다. 이전 예제는 정의된 연결을 사용하여 엔터티를 조인합니다. 그러나 때로는 추가 조건을 충족하는 관련 엔터티에만 가입하려고 합니다. JPA 2.1 이후, 당신은 내부 JOI에 대해이 작업을 수행 할 수 있습니다, 추가 ON 문과 함께 JOINs를 떠났다.

예를 들어, 이메일1, email2, …, emailn : 다음 예제에서 @NamedQuery 사용하는 createNamedQuery의 예는 다음과 같습니다. findWithName 비즈니스 메서드에 대 한 인수는 query.setParameter: ATTENTION: 최대 절전 모드에서 TREAT의 구현에 몇 가지 문제가 있습니다.

Shares

Posted on 2nd August 2019 in Uncategorised

Share the Story

About the Author

Back to Top
Shares