'ИЛИ' некоторые 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 может оказать аналогичную поддержку.

Другие вопросы по тегам