如何在slick + postgresql上进行分页选择 [英] how to get paginated select on slick + postgresql

查看:66
本文介绍了如何在slick + postgresql上进行分页选择的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在带有slick 3的Postgresql数据库中,进行分页的最佳方法是什么?

In a postgresql database, with slick 3, what's the best way to have pagination?

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

推荐答案

您可以在TableQuery对象上使用takedrop方法.它们将在结果SQL查询中转换为limitoffset:

You can use take and drop methods on TableQuery objects. They will be translated to limit and offset in the resulting SQL query:

val users: TableQuery[UsersTable] = UsersTable.query

val firstPartOfUsers  = users.drop(0).take(25).result
val secondPartOfUsers = users.drop(25).take(25).result

这两个操作将转换为以下SQL查询:

Those two actions will be translated to the following SQL queries:

select "name", "email", "id" from "users" limit 25 offset 0
select "name", "email", "id" from "users" limit 25 offset 25

这篇关于如何在slick + postgresql上进行分页选择的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆