scala - 在 Slick 中使用类型映射列进行查询

标签 scala slick

您将如何在 SLICK 中编写此查询?

DB.withSession  {
  implicit session =>
    Tokens.where(_.expirationTime < DateTime.now ).delete
}

DateTime.now 是 org.joda.time.DateTime 类型

和 _.expirationTime 是相同类型的类型映射列。

我收到这个错误
[error] UserService.scala:80: value < is not a member of scala.slick.lifted.Column[org.joda.time.DateTime]
[error]         Tokens.where(_.expirationTime < DateTime.now ).delete
[error]                                       ^
[error] one error found 

现在使用这种形式的查询。

最佳答案

我的猜测是 JodaTime 类型不支持开箱即用的类型。如果您将该列更改为 java.sql.Timestamp并使用了 Timestamp作为您的比较值,事情会奏效。如果您想在光滑的列映射中使用 joda 类型,您可能需要查看以下内容:

https://github.com/tototoshi/slick-joda-mapper

关于scala - 在 Slick 中使用类型映射列进行查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17125076/

相关文章:

scala - 如何使用 Spark Streaming 从 Kafka 读取二进制序列化的 Avro(Confluent Platform)

json - 如何在光滑中创建带有外键的模型?

slick - 如何在光滑的表列上添加值检查约束

database - Slick 3 - 基于其他表以事务方式插入到多个表中

scala - 如何在 slick 中对外键进行级联删除

scala - 在Scala中调用Kotlin的重载方法

scala - 在 Scala 中,根据先前的值创建一个流和第二个流

java - 在scala中获取Java枚举值数组

postgresql - 比较值和列时的光滑过滤器是选项

scala - 将 Array 转换为 ListBuffer 的惯用方法