0
我試圖從2周前創建的表中獲取所有記錄。試圖從2周前獲取所有記錄
我的方法是這樣的:
def getRecent(from: Instant): Future[Seq[User]] = {
db.run(
users.filter(f => f.status != 0 && f.createdAt > from).sortBy(_.id.desc).result
)
}
我有一個隱含的已經,我認爲會工作,但我想這只是爲了讀取行:
class UsersTable(tag: Tag) extends Table[User](tag, "users") {
implicit val dateColumnType = MappedColumnType.base[Instant, Timestamp](
i => Timestamp.from(i),
ts => {
ts.toInstant
}
)
def id = column[Int]("id", O.PrimaryKey)
....
的錯誤是:
value > is not a member of slick.lifted.Rep[java.time.Instant]
是那個dateColumnType轉換類型安全,或ca它會拋出異常? –
一個不一定排除另一個。您可以創建一個轉換,導致引發異常。 編譯時驗證範圍內是否存在轉換 - 無論是實際實現將導致運行時異常 - 這是另一回事。 –
@coolbreeze - 對不起,你問過這個「特殊」轉換。是的 - 它不應該在運行時拋出異常。它基本上歸結爲在某些情況下'Timestamp.from(i)'或'ts.toInstant'是否可以拋出異常。 這個映射(和Slick一般)的整點是類型安全的 –