Database 在quill查询中使用Long值作为drop和take

Database 在quill查询中使用Long值作为drop和take,database,scala,pagination,Database,Scala,Pagination,我有一个简单的端点,它从数据库返回一些记录。端点支持分页。 因此,我有下面的quill查询 query[HandbookModule]。drop(提升(偏移))。take(提升(限制)) 我想为分页支持int64/Long值,但据我所知,quill只支持Int值 我是否错过了如何使用quill实现这一点,或者这是不可能的。32位整数的最大值远远超过20亿。您确定您的数据库将实际拥有该卷吗?也许把长度缩小到int就行了 无论如何,您可以使用infix dsl在一定程度上自定义羽毛笔: def fi

我有一个简单的端点,它从数据库返回一些记录。端点支持分页。 因此,我有下面的quill查询

query[HandbookModule]。drop(提升(偏移))。take(提升(限制))

我想为分页支持int64/Long值,但据我所知,quill只支持Int值


我是否错过了如何使用quill实现这一点,或者这是不可能的。

32位整数的最大值远远超过20亿。您确定您的数据库将实际拥有该卷吗?也许把长度缩小到int就行了

无论如何,您可以使用infix dsl在一定程度上自定义羽毛笔:

def find(..., take: Long, ...) = {
    implicit class LongTake[T](q: Query[T]) {
      def lTake(l: Long) = quote(infix"$q take $l".as[Query[T]])
    }
    query[HandbookModule].drop(lift(offset)).lTake(lift(limit))
}