Scala Slick:准备好的查询中的默认参数(用于限制和范围)
我想在Slick 2.0.x中执行类似操作:Scala Slick:准备好的查询中的默认参数(用于限制和范围),scala,slick,slick-2.0,Scala,Slick,Slick 2.0,我想在Slick 2.0.x中执行类似操作:选择年龄的用户我找到了以下解决您问题的方法: private def ageQuery(maxAge: Column[Option[Int]] ,limit: scala.slick.lifted.ConstColumn[Long]) = { Users.filter(_.age < maxAge.getOrElse(1000)).take(limit) } private def ageQuery(maxAge:Column[Opt
选择年龄的用户我找到了以下解决您问题的方法:
private def ageQuery(maxAge: Column[Option[Int]] ,limit: scala.slick.lifted.ConstColumn[Long]) = {
Users.filter(_.age < maxAge.getOrElse(1000)).take(limit)
}
private def ageQuery(maxAge:Column[Option[Int]],limit:scala.slick.lifted.ConstColumn[Long])={
Users.filter(u.age
这就是我所做的:
我将limit
参数的类型更改为scala.slick.lifted.ConstColumn[Long]
。现在它既满足take
方法,又满足Compiled
宏
我改变了过滤条件。现在它返回所有小于maxAge
的用户,当maxAge
为None
时,它返回所有小于1000岁的用户。这是一种变通方法,但效果很好(假设没有人的年龄超过1000岁)
private def ageQuery(maxAge: Column[Option[Int]] ,limit: scala.slick.lifted.ConstColumn[Long]) = {
Users.filter(_.age < maxAge.getOrElse(1000)).take(limit)
}