光滑的“ for / yield”查询无法通过负比较进行编译

时间:2018-08-22 10:06:23

标签: scala playframework playframework-2.0 slick slick-3.0

我的slick查询遇到一个奇怪的问题: enter image description here

如您所见,下面的函数正在编译,尽管它基本上是相同的查询,但具有肯定的比较(不过,我不知道它是否实际上在执行应做的事情)。交换if条件的顺序时,它告诉我&&无法解析。我不知道是否是这种情况,但是我想第二个table query object(在这种情况下为contents)似乎还没有完成。但是,这就引出了一个问题,为什么第二个函数/查询正确编译。

您对此有答案吗?我在这里做错什么了吗?

谢谢!

2 个答案:

答案 0 :(得分:1)

You should use =!= for inequality and === for equality in queries according to slick docs

答案 1 :(得分:0)

我想我已经解决了问题。

代替:

if a.documentId === documentId && b.contentTypeId !== ContentType.PROCESS

我需要写:

if a.documentId === documentId && !(b.contentTypeId === ContentType.PROCESS)

这仍然是我无法解释的奇怪行为,特别是因为在这些!==陈述中通常允许使用诸如if这样的否定比较