我仍然試圖抓住scala,Play和anorm的某些方面。現在,我閱讀所有手冊和在線文檔,但我似乎可以爲我的問題找到令人滿意的解決方案。Anorm並獲得[雙]
我已用於檢索的對象下面的代碼稱爲MyThing:
case class MyThing(val code: String, val type:String, val value: Double, var id:Long)
object MyThing{
val myThingConverter = {
get[String]("type") ~ get[String]("code")~get[Double]("value") ~ get[Long]("id") match {
case type ~ code ~ value ~ id =>
MyThing("test", " test", value , 213)
}
}
val loadQuery =
"""
"select * from THINGS where id = {id}"
"""
def loadThings(id: Long): Option[Thing] = {
DB.withConnection {
implicit c =>
SQL(loadQuery)
.on('id -> id).as(myThingConvert *)
}.headOption
}
的問題是,一個錯誤是在部分「MyThing(‘測試’,‘測試’,值,213)」給定。錯誤是爲「值」:
Type mismatch, expected: Double: actual: Any
我在做什麼錯?
編輯:新增失蹤的parm
詩篇。
我有這樣的感覺,即從選擇查詢的結果集中提取值的模式匹配用於創建對象,這實在太過於誇張。有沒有另外一種方法可以減輕痛苦地完成這項工作?
您的案例類(MyThing)的定義是否缺少類型參數?您提供的定義只有三個參數,並且您將它用作四個參數。 – Todd
對不起,複製/粘貼時出錯。修復。謝謝。 – dstibbe