在postgresql数据库中,使用slick 3进行分页的最佳方式是什么?
- 获取所有行并使用scala进行分页(似乎不是很有效)
- 带限制和偏移量的静态查询
- 还有别的办法吗
您可以在TableQuery
对象上使用take
和drop
方法。它们将在生成的SQL查询中被转换为limit
和offset
val users: TableQuery[UsersTable] = UsersTable.query
val firstPartOfUsers = users.drop(0).take(25).result
val secondPartOfUsers = users.drop(25).take(25).result
这两个操作将被转换为以下SQL查询:
select "name", "email", "id" from "users" limit 25 offset 0
select "name", "email", "id" from "users" limit 25 offset 25