【问题标题】:Slick "for/yield"-query doesn't compile with negative comparison光滑的“for/yield”-查询不能通过负比较编译
【发布时间】:2019-01-28 13:47:31
【问题描述】:
我的slick-query 遇到了一个奇怪的问题:
正如你所看到的,下面的函数正在编译,虽然它基本上是相同的查询,但有一个积极的比较(虽然我不知道它是否真的在做它应该做的事情)。当交换if 条件的顺序时,它告诉我&& 无法解决。我不知道是不是这样,但我猜第二个table query object,在这种情况下是contents,似乎还没有完成。但是,这引出了为什么第二个函数/查询正确编译的问题。
你有答案吗?我在这里做错了吗?
提前致谢!
【问题讨论】:
标签:
scala
playframework
playframework-2.0
slick
slick-3.0
【解决方案1】:
根据 slick docs,您应该在查询中使用 =!= 表示不等式,使用 === 表示等式
【解决方案2】:
我想我已经解决了这个问题。
代替:
if a.documentId === documentId && b.contentTypeId !== ContentType.PROCESS
我需要写:
if a.documentId === documentId && !(b.contentTypeId === ContentType.PROCESS)
仍然是一种我无法真正解释的奇怪行为,尤其是因为在那些 if-statements 中通常允许像 !== 这样的负面比较