2011-09-26 2 views
0

나는 HibernateEntityQueryEJBQL 제한을 사용하는 코드를 상속했다.HibernateEntityQuery와 EJBQL 제한

이 다양한 분야와의 "활동"테이블/엔티티, 그리고 기존의 EJBQL 제한과 같이 : 표 또한 나타내는 일곱 개 부울 필드를 가지고 일 (일/월/화 ...)

private final String[] SEARCHRESTRRICTION = { 
    "activity.startDate >= #{activityList.startMonthBeginDate}", 
    "activity.startDate <= #{activityList.startMonthEndDate}", 
    "activity.cost >= #{activityList.minCost}" 
} 

주어진 활동에 적용됩니다. 이제 며칠 씩 쿼리를하고 싶습니다. 사용자가 관심있는 요일을 선택하면 필터링 된 결과에 과 일치하는 활동이 포함되어야합니다. 사용자가 선택한 요일 중입니다.

예를 들어 사용자가 mon/wed/fri을 검사하면 쿼리는 mon = true 또는 wed = true 또는 fri = true 인 모든 활동을 반환해야합니다.

EJBQL의 문제는 내가 같은 것을 할 필요가있는 반면이, AND를 사용하여 제한을 적용한다는 것입니다

:

select * from activity where 
     (mon = true OR wed = true OR fri = true); 

을의 형태로 제한을 지정하는 방법이 있나요은 "어떠한 경우 결과를 반환 다음 중 무엇이 사실입니까? "

답변

0

해결 방법은 setRestrictionExpressionStrings() 이전에 적용된 setEjbql() 호출로 초기 필터링을 이동하는 것이 었습니다.