'ИЛИ' некоторые QueryParam(s) Lift Mapper
Есть ли способ "ИЛИ" двух или более QueryParam в liftWeb (scala)? Например, следующий фрагмент кода создает два QueryParams, но "User.findAll" создает предложение "AND", я имею в виду, что он находит каждого пользователя, который удовлетворяет как "queryParam1", так и "queryParam2".
val queryParam1 = By(User.firstName , "guest")
val queryParam2 = By(User.lastName , "guest)
User.findAll(queryParam1 , queryParam2)
Но я хочу найти пользователей, которые удовлетворяют 'queryParam1' ИЛИ 'queryParam2', и единственный способ, который я нашел до сих пор, - это создать простой SQL-запрос самостоятельно.
Есть ли другой способ, кроме создания SQL-запроса?
Большое спасибо:)
1 ответ
Если вы увидели этот вопрос, держите пари, что он у вас есть, и наша компания также использует Lift, но с Lift-Record(еще один слой постоянства, кроме Mapper), поэтому запишите нашу реализацию.
Благодаря поддержке Lift-Json мы можем написать запрос следующим образом.
findAll(("$or" -> ("firstName" , "guest") ~ ("lastName", "guest")))
Кстати, $ или изначально поддерживается MongoDB(один из его модификаторов). Так что я думаю, что Lift-Mapper может оказать аналогичную поддержку.