【发布时间】:2015-12-21 04:08:11
【问题描述】:
使用 Slick 3.1,我如何将多个查询组合成同一个类型的单个查询?这不是联接或联合,而是组合查询“段”以创建单个查询请求。这些“段”可以是任何单独有效的查询。
val query = TableQuery[SomeThingValid]
// build up pieces of the query in various parts of the application logic
val q1 = query.filter(_.value > 10)
val q2 = query.filter(_.value < 40)
val q3 = query.sortBy(_.date.desc)
val q4 = query.take(5)
// how to combine these into a single query ?
val finalQ = ??? q1 q2 q3 q4 ???
// in order to run in a single request
val result = DB.connection.run(finalQ.result)
编辑: 预期的 sql 应该是这样的:
SELECT * FROM "SomeThingValid" WHERE "SomeThingValid"."value" > 10 AND "SomeThingValid"."valid" < 40 ORDER BY "MemberFeedItem"."date" DESC LIMIT 5
【问题讨论】:
-
我不完全确定您期望的结果。我想我不得不问:你会如何用普通的 SQL 来做呢?
-
@PatrykĆwiek 更新了示例预期的 sql