我试图与光滑,其中的参数之一就是查询返回(通常你通过参数传递给“取”做到这一点)的元素数量的查询。不过,我想这个参数是可选的(寻找像.maybeFilter的命令,但对。取),我一直在到处找,但似乎无法找到它。有没有人有什么建议?Slick是否有采取动态查询大小的方法?
2
A
回答
0
我建议你捕捉想要运行的主查询,然后使用常规方法Option
应用take
。喜欢的东西:
def query(taking: Option[Int]) = {
val baseQuery = table.filter(...).map(...)
taking.map(size => baseQuery.take(size)) getOrElse baseQuery
}
如果你这样做了很多,这可能是有意义的包裹行为纳入自己的类,如MaybeFilter。
0
动态查询滤波器 slick-doc
1。第一方式(所有动态滤波器是 '和')
def selectByHotelIdAndStartTimeAndEndTimeAndPerpageAndOffset(
hotelId: Option[String],
caseTimeFilter: Option[CaseTimeFilter[Timestamp]],
perPage: Int,
offset: Int
): Future[Seq[GoodsOrderMstinfoTRow]] =
db.run(
tableQ
.filter { goodsOrderMstinfoT: GoodsOrderMstinfoT =>
List(
hotelId.map(goodsOrderMstinfoT.hotelid === _),
caseTimeFilter.map(t => goodsOrderMstinfoT.createTime between (t.start, t.end))
).collect({ case Some(repBoolean) => repBoolean })
.reduceLeftOption(_ && _)
.getOrElse(true: Rep[Boolean])
}
.drop(offset)
.take(perPage)
.sortBy(_.gomtId.desc)
.result
)
2.second方式
def selectCountByHotelIdAndStartTimeAndEndTime(
optionHotelId: Option[String],
rmiSerialno: Option[String],
caseTimeFilter: Option[CaseTimeFilter[Timestamp]]
): Future[Int] =
db.run(
tableQ
.filter { RoomReviewT: RoomReviewT =>
optionHotelId match {
case Some(hotelid) => RoomReviewT.hotelid === hotelid
case None => true: Rep[Boolean]
}
}
.filter { RoomReviewT: RoomReviewT =>
rmiSerialno match {
case Some(rmiSerialNo) => RoomReviewT.rmiSerialno === rmiSerialNo
case None => true: Rep[Boolean]
}
}
.filter { RoomReviewT: RoomReviewT =>
caseTimeFilter match {
case Some(timeFilter) =>
RoomReviewT.createTime between (timeFilter.start, timeFilter.end)
case None => true: Rep[Boolean]
}
}
.length
.result
)
`
相关问题
- 1. 使用Slick 2.1.0构建动态查询
- 2. LLVM检查数组分配是否具有动态大小或常量大小
- 3. 采取多态性方法?
- 4. 检查类是否有静态方法
- 5. 小巧的动态查询
- 6. 动态获取每个方法中的列表大小
- 7. jquery动态图像调整大小没有采取正确的图像尺寸
- 8. 在Codeigniter中创建大型动态查询的最佳方法?
- 9. RMagick的重采样方法调整图像大小,而不是重新取样,
- 10. 获取方法的大小
- 11. 是否可以做动态查询
- 12. 获取AppEngine数据存储查询大小的最有效方法
- 13. Canvas放大和缩小,是否有更好的实现方法?
- 14. 是否有内置的方法来增加字体大小?
- 15. PDO - 动态查询大厦
- 16. caliburn查询项目源采取行动
- 17. 是否有一种方法来获取NSMutableArray的最大值和最小值
- 18. 是否有办法在执行xpath查询时忽略大小写
- 19. 动态大图重采样
- 20. 动态查询数据 - 最佳方法
- 21. 是否有使用Sqlalchemy的Flask动态查询生成器?
- 22. Play-Slick插件是否支持Slick 2.0?
- 23. 是否有静态方法的原因?
- 24. 采取容器高度的动态方法?
- 25. iOS:采取哪种方法 - x个动态UITableViews的数量
- 26. 检查文件夹大小是否大于特定大小的最快方法是什么?
- 27. 检查大小写查询字符串的最佳方法
- 28. 是否有可能采取大量的文件&焦油/ gzip并流动他们?
- 29. 使查询更有效(真的很慢查询采取永远!)
- 30. 是否有必要检查文件大小对php.ini和手动?