1
我有,我想在ResultSet使用的每一行的情況下,類MyRecord:如何在Anorm和Play Framework中使用可爲空的列?
case class MyRecord(id: Int, remindeMe: Option[org.joda.time.DateTime])
如何選擇所有表中的行,並返回使用Scala和ANORM有Play框架MyRecord的列表?
我曾嘗試用:
def getRecords() : List[MyRecord] = {
val records = SQL("SELECT id, data FROM mytable")().collect {
case Row(id: Int, Some(data: Long)) =>
MyRecord(id, new org.joda.time.DateTime(data))
}
}
如果列data
是空我想None
否則我想Some(data)
作爲remindMe的情況下類。是的,上面的Scala代碼是非常錯誤的,但我不明白如何解決這個問題。
謝謝,但我怎麼得到它的名單?現在我得到這個錯誤:'提出的錯誤是:類型不匹配;發現:scala.collection.immutable.Stream [models.MyRecord]需要:List [models.MyRecord]' – Jonas
@Jonas collect應該返回列表,我已經更新了代碼,val不應該在那裏。在Scala環境下做了一個快速測試(雖然沒有玩Anorm),但它的工作原理 –
是的,我在運行代碼之前也刪除了'val records'。它是當前的代碼,返回'scala.collection.immutable.Stream [models.MyRecord]'而不是'List [models.MyRecord]' – Jonas