sql >> Database teknologi >  >> RDS >> Mysql

Undlader at bruge transaktioner i Quill til at INDSÆTTE én-til-mange relationelle objekter

Problemet var i øjeblikket, at Quill async ikke understøtter samtidige operationer inde i transaktioner.

Så var nødt til at gøre dyreindsættelsen sekventielt:

ctx.transaction { implicit ec =>
  for {
    personId <- ctx.run(insertPersonQuery)
    animals = personCreate.animals.map(Animal.apply(personId, _))
    _ <- animals.foldLeft(Future.successful(0l)) {
      case (fut, animal) =>
        fut.flatMap(_ => insertAnimal(animal))
    }
  } yield personId
}

også endnu bedre er at bruge batch-indsættelse :)

Tak for @fwbrasil og @mentegy for hjælpen!



  1. Brug af MySQL 5, Simple Membership Provider, ASP.NET MVC4 med Entity Framework 5

  2. Python, MySQL og SELECT output til ordbog med kolonnenavne til nøgler

  3. cx_Oracle og datakildeparadigmet

  4. Postgresql:Generer sekvens