jpa specification 예제

재사용 가능한 조건어를 정의할 수 있도록 Eric Evans의 도메인 기반 디자인 책에 도입된 개념에서 파생된 사양 인터페이스를 소개했습니다. 사양 인터페이스가 나타내는 엔터티에 대한 조건자로 사양을 정의합니다. 실제로는 단일 메서드로만 구성됩니다. 또한 클래식 사양을 JPA Criteria 쿼리와 결합하여 관계형 데이터베이스에서 개체를 검색하는 방법도 살펴보겠습니다. 이 게시물 내에서 우리는 사양을 만들기위한 예제 엔터티로 다음 설문 조사 클래스를 사용합니다. 시작 날짜와 종료 날짜가 있는 설문 조사를 나타냅니다. 이 두 날짜 사이의 시간에 사용자는 다른 선택 사항 사이에서 투표할 수 있습니다. 종료 날짜에 도달하기 전에 관리자가 설문 조사를 잠글 수도 있습니다. 이 경우 잠금 날짜가 설정됩니다. 상위 수준 함수이기 때문에 먼저 특정 괄호(위의 예)와 거리 및 도시와 AND 및 OR 관계를 정의합니다. 그래서 존 도는 부다페스트에 3 개의 주소를 가지고 있습니다. 이제 두 테이블에 조인하면 각각 John Doe의 데이터가 포함된 3개의 레코드를 받게 됩니다.

그 후 사용자만 반환하면(이 경우 John Doe만 해당) 한 명의 사용자가 결과적으로 3번 받게 됩니다. 따라서 뚜렷한 결과만 얻으려면 마법의 선을 추가해야합니다. 예를 들어 사용자만 필터링하려는 경우 다음과 같은 사양을 사용할 수 있습니다. : 사양 패턴을 사용하여 (asc 및 desc) 클어즈로 주문을 어떻게 선택할 수 있습니까? 주문 절은 사용자가 GUI를 클릭하면 다른 복합 사양 (예 : OrSpecification 또는 NotSpecification)으로 쉽게 확장 할 수 있습니다. 결론 사양 패턴을 사용할 때 우리는 별도의 사양 클래스에서 비즈니스 규칙을 이동합니다. 이러한 사양 클래스는 복합 사양을 사용하여 쉽게 결합할 수 있습니다. 일반적으로 사양은 재사용성과 유지 관리성을 향상시킵니다. 또한 사양을 쉽게 단위 테스트할 수 있습니다. 사양 패턴에 대 한 자세한 내용은 에릭 에반스와 마틴 파울러에 의해이 문서를 권장 합니다. GitHub에서 이 예제 프로젝트의 소스를 찾을 수 있습니다. AndSpecification는 두 개의 다른 사양으로 만들어집니다. 에서만족비() 및 toPredicate() 우리는 논리및 연산에 의해 결합된 두 사양의 결과를 반환합니다.

우리는 다음과 같이 우리의 새로운 사양을 사용할 수 있습니다 : 나는 가능한 한 명확하게 내 예제를 만들고 싶었다, 그래서 복잡한 논리와 조건을 많이 추가하지 않았다, 그냥 간단한 예제 응용 프로그램을 했다. 기준빌더에 대해 자세히 알고 싶다면 해당 API를 살펴보십시오. 이 시점에서 사양은 제약 조건 정의를 포함하는 유일한 구성 요소입니다.

Les commentaires sont fermés.