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

Slick 3.0 (scala) forespørgsler returnerer ikke data, før de køres flere gange (tror jeg)

Alle DB-opkald vender tilbage til dig med det samme med Futures , selvom de ikke er færdige med deres operationer. Dette er asynkront ikke synkront.

Du kan ændre din kode, så den passer til Futures på en af ​​to måder:

  1. du kan bruge Await.result med alle DB-kald, at vente på det tidspunkt, indtil de er færdige, for eksempel:Await.result(db.run(insertEffect), Duration.Inf)

  2. du kan bruge .map (eller .flatMap hvis du bruger en anden Future indefra), med kode, som du vil køre, når DB-handlingen er fuldført. For eksempel:db.run(insertEffect).map(_ => ... do stuff... )

Se endnu et Stack Overflow tråd vedrørende undtagelsen med nogle ideer om årsagen.




  1. Forbinder Coldfusion 9 med MySql 5 på Ubuntu 9.10

  2. opdater tabelkolonne efter indsættelse af ny post ved hjælp af MySQL-udløsere

  3. Har brug for hjælp til korrekt SQL

  4. Gruppe for uge, hvordan får man tomme uger?