如何从具有非 Rep 纯值的 Slick 查询中生成编译值?

How I can make a Compiled value from an Slick query wiht non-Rep pure values?

我有这样的查询:

def getLatest( limit:Short, v:Rep[String] ) = ( for {
  (_,r) <- T1 join T2 on ( _.id === _.foreingId )
} yield r ).take( limit )

由于 "limit"(argument-list 中的非 Rep 属性),我无法从此查询中获得 "Compiled" 值。 在这种情况下我能做什么?

你应该使用 ConstColumn[_] ( http://slick.typesafe.com/doc/3.1.0/queries.html#compiled-queries ) :

def getLatest( limit:ConstColumn[Long], v:Rep[String] ) = ( for {
  (_,r) <- T1 join T2 on ( _.id === _.foreingId )
} yield r ).take( limit )

val compiled = Compiled( getLatest _ ) // compiled( 10, "Hello" )