首页 > 解决方案 > PostgreSQL 普通 sql 查询转换为 Slick Scala 查询

问题描述

我是 Slick 和 Scala 的初学者,所以我有一个问题。如何将下面编写的普通 SQL 查询转换为 Slick 3.0 中的查询。

SELECT * FROM app.events WHERE start_datetime BETWEEN '2021-08-25 18:40:00' AND '2021-08-25 19:50' OR                                                                               
                                 end_datetime BETWEEN '2021-08-25 18:40:00' AND '2021-08-25 19:50' OR
                                 '2021-08-25 18:40:00' BETWEEN start_datetime AND end_datetime OR
                                 '2021-08-25 19:50:00' BETWEEN start_datetime AND end_datetime

我试着写这样的查询:

db.run(events.filter(evt =>
  evt.startDateTime >= startDateTime && evt.endDateTime <= endDateTime ||
  evt.endDateTime >= startDateTime && evt.endDateTime <= endDateTime ||
  // Error: Type mismatch. Required: LocalDateTime, found: Rep[LocalDateTime] here
  startDateTime >= evt.startDateTime&& startDateTime <= evt.endDateTime ||
  endDateTime >= evt.startDateTime&& endDateTime <= evt.endDateTime
).result.headOption)

And it's gave me error:

    Type mismatch. Required: LocalDateTime, found: Rep[LocalDateTime]

标签: scalaslick-3.0

解决方案


推荐阅读