我正在尝试使用anorm从play2模块查询mysql数据库时使用模式匹配。代码如下所示:
def test= Action {
DB.withConnection { implicit c =>
val entities = SQL("SELECT entity.idEntity, entity.name FROM entity")().collect {
case Row(id:Int, name:String) => Entity(id, name)
}
printList(entities.toList)
}
但名称:字符串不匹配任何东西(已经尝试仅匹配整数,它工作正常)。在我的数据库中,实体表“名称”列类型是varchar(45)。
我缺少什么?
答案 0 :(得分:0)
您可以尝试在Row
和指定的通配符上匹配Int
。
scala> new Row(0,"foo")
res0: Row = Row(0,foo)
scala> res0 match{
| case Row(i: Int,s @ _) => println(i + " " + s)
| }
0 foo
答案 1 :(得分:0)
如果name可以为空,则此匹配应该有效:
case Row(id:Int, Some(name:String))