2012-05-14 48 views
0

下面顯示的代碼片段應該用於從數據庫中檢索一些數據。使用anorm進行sql查詢。不能使用模式匹配

import anorm._ 

object Instruction { 

def findAll(date:String):List[RealTimeInstruction]={ 

    query = SQL(""" 
       select * from instructions where date > {dd} 
       """).on("dd"->date) 
} 

} 

然後我想使用模式匹配來執行查詢並處理結果。 然而,當我學嘗試使用query.map(...)我得到如下:

值映射不ANORM SimpleSql的成員。

我該怎麼辦?

+0

'query'只是一個SQL查詢。你首先必須執行它。然後,您可以對匹配結果進行模式設置,或使用解析器創建所需的對象。用法取決於你想要做的事情。你應該再讀一遍這個anorm教程。如果你不清楚,你應該編輯你的代碼片段來解釋你的目標。 – paradigmatic

回答

1

您需要創建一個ResultSetParser來將結果集解析爲可以模式匹配的結果集。也許類似於

val rowParser : RowParser[String~Date] = get[String]("instructions.name")~get[Date]("instructions.date") 
val resultSetParser = rowParser * 
(query as resultSetParser) map { case name~date => ... }