scala - Squeryl的where "java.util.Date does not take parameters"中出现错误 "clause"

标签 scala squeryl

我对 Scala 相当陌生,目前正在针对我们的 MySQL 数据库使用名为 Squeryl 的 ORM。

我想做的是查找某个时间范围内的多个记录。 例如,在普通 SQL 中,我认为它会是这样的:

    SELECT * FROM records WHERE updated_at >= ? AND updated_at < ? 

但是,我的 Scala 代码实现了如下类似的行为,但在“from(records)”的左括号处出现错误,提示“java.util.Date 不接受参数”

    def getRecordsBetween(from:java.util.Date, til:java.util.Date):List[Record]
      transaction {
        from(records)(record =>
          where(
            record.updatedAt gte from and
            record.updatedAt lt til
          )
          select(record)
        ).toList
      }
    }

(其中 val 记录 = tableRecord

我在这里做错了什么?预先非常感谢。

最佳答案

方法参数和方法在 Scala 中位于同一命名空间中,因此您的 from 方法参数“隐藏”PrimitiveTypeMode 上的 from 方法。 (或 CustomTypeMode)对象,您使用如下行将其带入范围:

import org.squeryl.PrimitiveTypeMode._

只需将参数名称更改为 fromDatestart 或其他名称即可。

关于scala - Squeryl的where "java.util.Date does not take parameters"中出现错误 "clause",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11491018/

相关文章:

Scala Curried 类型不匹配

Scala:通过比较简化案例

scala - 防止 Mixin 覆盖 equals 破坏 case class 相等

scala - 阅读 Scala DSL 代码的最佳方法是什么?

scala - 玩迁移替代方案

scala - 如何理解以下 scala 调用

postgresql - 在 Squeryl 中通过聚合连接多个表

scala - 如何在 TreeMap 中使用 Scala 的 Ordering#reverse?

scala - 为特定 SBT 配置设置 testFrameworks

java - 在 Scala 中将 RDD 映射到 PairRDD