Scala 要生成插入器/更新程序的Anorm宏?
Scala Anorm 2.5.0可以使用Scala 要生成插入器/更新程序的Anorm宏?,scala,anorm,Scala,Anorm,Scala Anorm 2.5.0可以使用宏.namedParser生成解析器。例如: import anorm.{ Macro, RowParser } case class Info(name: String, year: Option[Int]) val parser: RowParser[Info] = Macro.namedParser[Info] // Generated as: get[String]("name") ~ get[Option[Int]]("year") map {
宏.namedParser
生成解析器。例如:
import anorm.{ Macro, RowParser }
case class Info(name: String, year: Option[Int])
val parser: RowParser[Info] = Macro.namedParser[Info]
// Generated as: get[String]("name") ~ get[Option[Int]]("year") map { case name ~ year => Info(name, year) }
val result: List[Info] = SQL"SELECT * FROM list".as(parser.*)
是否有一个宏可以通过另一种方式进行操作,即插入/更新?
比如:
val myInfo = Info("John", 1950)
val mapper = Macro.mappings[Info]
SQL("insert into list (name, year) values ({name}, {year})")
.on(mapper(myInfo)).executeInsert()
这将产生:
SQL("insert into list (name, year) values ({name}, {year})")
.on('name -> myInfo.name, 'country -> myInfo.name).executeInsert()
Anorm不提供自动更新,因为它专注于结果解析。可能不会。