2014-12-25 2 views
2

liftWeb (scala)에서 두 개 이상의 QueryParam을 "OR"하는 방법이 있습니까? 예를 들어, 다음 코드 단편은 두 개의 QueryParams를 작성하지만 'User.findAll'은 "AND"절을 작성합니다. 즉, 'queryParam1'과 'queryParam2'를 모두 만족하는 모든 사용자를 찾습니다.'또는'일부 QueryParam 리프트 매퍼

val queryParam1 = By(User.firstName , "guest") 
val queryParam2 = By(User.lastName , "guest) 
User.findAll(queryParam1 , queryParam2) 

는하지만 'queryParam1'OR 'queryParam2', 그리고 내가 지금까지 찾은 유일한 방법을 만족하는 사용자를 찾으려면, 일반 SQL 쿼리 나 자신을 만드는 것입니다.

SQL 쿼리를 만드는 것 외에 다른 방법이 있습니까?

고마워요 :)

+0

// 여기에서 적절한 응답을받지 못하면 메일 링리스트에 편지를 보내십시오. (개인적으로 stackoverflow를 좋아하지만 Lift는 일반적으로 ML을 사용하도록 제안합니다. 특히 희귀 한 주제에 대해서는 특히 그렇습니다.) – VasyaNovikov

+0

@VasyaNovikov 대단히 감사합니다. –

답변

0

는이 질문을 볼 일이 당신은 우리의 회사는 또한 리프트하지만 리프트 - 레코드 (매퍼 외에 또 다른 영속 계층)로를 사용하므로 아래 우리의 구현을 작성대로 못 박혀 가지고 내기 .

Lift-Json의 지원으로 다음과 같은 쿼리를 작성할 수 있습니다.

findAll(("$or" -> ("firstName" , "guest") ~ ("lastName", "guest"))) 

BTW, $ MongoDB (수정 자 중 하나)가 원래 지원합니다. 그래서 Lift-Mapper가 비슷한 지원을 제공했을 수도 있습니다.