, , Anorm 2.4 case, :
final case class Role(id: Int,
label: String,
roletype: Int,
lid: Option[Int],
aid: Option[Int],
created: DateTime,
modified: DateTime)
, :
val roleOptionRowParser = int("id") ~ str("label") ~ int("roletype") ~ (int("lid")?) ~ (int("vid")?) ~ get[DateTime]("created") ~
get[DateTime]("modified") map {
case id~label~roletype~lid~vid~created~modified β Some(Role(id, label, roletype, lid, vid, created, modified))
case _ β None
}
? combinator , , SQL. :
SQL(s"""
| select * from $source
| where $clause
""".stripMargin).on(params : _*).as(rowParser.single).get
'rowParser' roleOptionRowParser, .
, ( ), (,? *), "":
SQL(s"""
| select * from $source
| where $clause
""".stripMargin).on(params : _*).as(rowParser *).flatten
SQL(s"""
| select * from $source
| where $clause
""".stripMargin).on(params : _*).as(rowParser ?).flatten
Ah - , "flatten" , Option [Role], , ( ):
case id~label~roletype~lid~vid~created~modified β Some(Role(id, label, roletype, lid, vid, created, modified))
, , "flatten" Option, "Role".
,
.