【问题标题】: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 中通常允许像 !== 这样的负面比较

      【讨论】:

        猜你喜欢
        • 2019-05-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多