2

有没有办法在 liftWeb (scala) 中“或”两个或多个 QueryParam ?例如,下面的代码片段,创建了两个 QueryParam,但是 '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 查询之外,还有其他方法吗?

非常感谢 :)

4

1 回答 1

0

碰巧看到这个问题,打赌你已经搞定了,因为我们公司也使用 Lift,但使用 Lift-Record(除了 Mapper 之外的另一个持久层),所以写下我们的实现。

在 Lift-Json 的支持下,我们可以像这样编写查询。

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

顺便说一句,$ 或最初由 MongoDB(其修饰符之一)支持。所以我猜Lift-Mapper 可能提供了类似的支持。

于 2015-07-16T14:58:01.377 回答