如何从具有非 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" )
我有这样的查询:
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" )