我正在使用Slick 2.1并且正在做一个相当标准的JOIN。但是,当我尝试使用“take()”限制返回的行数时,我收到编译错误。
查询...
var samples = for {
(sample, user) <- this
.join(users) on (_.userId === _.id) if user.id === 123
.take(50)
} yield (sample)
编译错误......
type mismatch; found : Iterable[String] required: scala.slick.lifted.Column[?]
为什么我不能简单地在这里添加“take()”?!
谢谢!
答案 0 :(得分:1)
实际上你的表达式在语法上是无效的:在尝试在表转换链中进行另一次调用之前,你已经插入了for-comprehension guard语句。
.join(users) on (_.userId === _.id) if user.id === 123
^ Right here
.take(50)
要修复,您有以下三个选项之一:
if
替换为filter
,if
放在take
,take
应用于for
理解