2012-10-02 2 views
2

저는 Spring을 사용하여 HTTP 요청 매개 변수를 비즈니스 도메인 객체에 자동으로 매핑하는 컨트롤러가 있습니다. 도메인 객체의 필드 데이터를 데이터베이스에 보관합니다.Java - Spring - 검색 도메인 객체

도메인 개체와 관련된 모든 필드 조합을 검색 할 수 있어야하는 다른 컨트롤러가 있습니다. 일부 필드 (예 : 날짜 필드)의 경우 특정 범위 내에서 검색 할 수 있어야합니다. 따라서 도메인 개체는 하나의 날짜 필드 만 가지고 있으므로 다시 사용할 수 없습니다.

예를 들어, 날짜 필드가있는 보고서 도메인 개체가 있습니다. 그러나 검색에는 "보고"날짜 필드와 "보고서"날짜 필드가 필요합니다.

범위 검색을 지원하는 필드를 제외하고 대부분 비즈니스 도메인 개체를 미러링하는 검색 용 도메인 개체 집합을 만들어야합니까? 아니면 이것을 할 수있는 더 좋은 방법이 있습니까?

미리 도움을 주셔서 감사합니다.

답변

0

새 개체를 만드는 대신 범위에 대해 기존 도메인 개체의 두 필드를 추가하는 방법은 어떻습니까?
두 개의 새로운 필드 fromReportDatetoReportDate을 보고서 도메인 개체에 추가하는 것과 같습니다.

0

대신 Criteria6 같은 개체를 도입 할 수 있습니까?

당신이 현재 가지고있는 것을 기반으로 더 많은 비즈니스 객체를 만들지는 않을 것입니다. 왜냐하면 단순히 그 엔티티를 모델링하지 않았기 때문입니다 - 당신은 그것을 찾는 데 사용 된 검색 기준을 모델링하고 있습니다.

예를 들어, 다음을 수행 할 수 있습니다

CriteriaBuilder<Report> builder = new CriteriaBuilder<Report>(); 
builder.addFrom("date", new Date()) 
builder.addTo("date", new Date()); 
Criteria<Report> criteria = builder.build(); 

CriteriaBuilder는 반사적으로 당신이없는 필드에 대 한 기준을 바인드하려고하지 있는지 확인하기 위해 클래스 속성을 확인할 수 있습니다.