sql >> Database >  >> RDS >> Mysql

Slick 3.0 (scala)-query's retourneren geen gegevens totdat ze meerdere keren worden uitgevoerd (denk ik)

Alle DB-oproepen zullen onmiddellijk naar u terugkeren met Futures , zelfs als ze nog niet klaar zijn met hun operaties. Dit is asynchroon, niet synchroon.

U kunt uw code wijzigen om tegemoet te komen aan de Futures op een van de volgende twee manieren:

  1. u kunt Await.result . gebruiken met alle DB-aanroepen, om op dat moment te wachten totdat ze zijn voltooid, bijvoorbeeld:Await.result(db.run(insertEffect), Duration.Inf)

  2. u kunt .map . gebruiken (of .flatMap als je een andere Future . gebruikt van binnenuit), met code die u wilt uitvoeren wanneer de DB-bewerking is voltooid. Bijvoorbeeld:db.run(insertEffect).map(_ => ... do stuff... )

Kijk eens naar een andere Stack Overflow draad met betrekking tot de uitzondering met enkele ideeën over de oorzaak.




  1. MYSQL die variabelen declareert

  2. UnknownHostException bij het proberen verbinding te maken met heroku-postgres vanuit een lokaal Springboot-project met Spring JPA

  3. Paginering aangepaste query ophalen eerste N rijen fout

  4. Hoe maak je in de PostgresQL-tabel een kolom met alle waarden in kolom1 waarvoor de waarde van de huidige rij in kolom1 in kolom2 wordt weergegeven?