jpa specification 예제

재사용 가능한 조건어를 정의할 수 있도록 Eric Evans의 도메인 기반 디자인 책에 도입된 개념에서 파생된 사양 인터페이스를 소개했습니다. 사양 인터페이스가 나타내는 엔터티에 대한 조건자로 사양을 정의합니다. 실제로는 CouchbaseQueryExecutor 예제 앱과 거의 동일하지만 이제 Java Class 매개 변수를 컨트롤러 함수에 전달할 수 있으므로 Spring이 쿼리 문자열에서 속성을 자동으로 채울 수 있다는 것을 알고 있습니다. 이름 충돌이 있는 경우 이름이 같은 모든 속성이 채워집니다. **중요 **이 같은 자바 클래스를 사용하려는 경우 **MUST **setters가 있습니다. setter를 추가 하지 않는 경우 스프링 (속성이 공용 인 경우에) 속성에 매개 변수를 바인딩하지 않습니다. 이 시점에서 사양은 제약 조건 정의를 포함하는 유일한 구성 요소입니다. 데이터베이스를 쿼리하거나 개체가 필요한 규칙을 충족하는지 확인하는 데 사용할 수 있습니다. 그러나 한 가지 질문은 두 개 이상의 제약 조건을 결합하려면 어떻게 해야 합니까? 예를 들어 아직 실행 중인 모든 인기 있는 설문 조사에 대 한 데이터베이스를 쿼리 하려고 합니다. 이에 대한 대답은 복합 사양이라고 하는 복합 설계 패턴의 변형입니다. 복합 사양을 사용하여 우리는 다른 방법으로 사양을 결합 할 수 있습니다.

모든 실행 중인 인기 있는 풀에 대 한 데이터베이스를 쿼리 하려면는 isCurrently실행 을 결합 해야합니다논리및 연산을 사용하는 인기 사양. 이것에 대한 다른 사양을 만들어 봅시다. 우리는 그것을 이름 AndSpecification : 어떻게 사양 패턴을 사용하여 (asc 및 desc) clasuse에 의해 주문을 선택할 수 있습니까? 주문 절은 사용자가 GUI를 클릭하면 JPA Criteria 쿼리와 함께 Java에서 사양 패턴의 사용을 표시하는 예제 프로젝트입니다. 그것은 내가 블로그 게시물을 작성 하는 데 사용 하는 소스 [JPA와 사양 패턴을 사용 하 여][1] [1]: http://www.mscharhag.com/2013/12/java-using-specification-pattern-with.html 지금 우리는 여러 사양을 체인 수 있습니다는 () 메서드: 우리는 수 있습니다. 먼저 poll.isCurrentlyRunning()과 같은 적절한 메서드를 추가합니다.