Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala 要生成插入器/更新程序的Anorm宏?_Scala_Anorm - Fatal编程技术网

Scala 要生成插入器/更新程序的Anorm宏?

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 {

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 { 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不提供自动更新,因为它专注于结果解析。可能不会。