Dalla commedia documentation:Come utilizzare stessa transazione database in thread separato con Play Framework 2.2
A causa del modo Gioca 2.0 funziona, il codice di azione deve essere più veloce possibile (. Cioè non bloccante) . Quindi, cosa dovremmo restituire come risultato se noi non siamo ancora in grado di generarlo? La risposta è una promessa di risultato!
Quindi non dovrei effettuare chiamate al database direttamente all'interno dell'azione. Questo ora mi confonde quando guardo Plays JPA documentation:
Ogni APP chiamata deve essere fatto in una transazione in modo, per consentire JPA per una particolare azione , annotare con @ play.db.jpa.Transactional. Questo comporranno il metodo di azione con un azione JPA che gestisce la transazione per voi
Questo mi lascia un po 'confuso. Se seguo la documentazione, non dovrei bloccare un thread di azione con una chiamata al database. Ma se l'azione è ciò che sta creando e gestendo la transazione del database, non sto perdendo quella transazione inviando il lavoro a un attore o in qualche modo trasferendo il lavoro su un altro thread? Voglio dire, sono nuovo di scala e gioco, ma non vedo come la transazione dovrebbe seguire in thread separati. Qualcuno ha una spiegazione o un modo in cui dovrei farlo? Sono molto confuso.
Vedo. Grazie. – spierce7
Mi piace il tuo secondo suggerimento, avere il contesto di pool/esecuzione per JPA/JDBC. Sareste in grado di estendere la risposta con il codice, come farlo? –