如何在slick+postgresql上进行分页选择



在postgresql数据库中,使用slick 3进行分页的最佳方式是什么?

  • 获取所有行并使用scala进行分页(似乎不是很有效)
  • 带限制和偏移量的静态查询
  • 还有别的办法吗

您可以在TableQuery对象上使用takedrop方法。它们将在生成的SQL查询中被转换为limitoffset

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

最新更新