Sto provando a creare un server multithreading. Il problema è che ottengo il seguente errore: play.exceptions.JPAException: il contesto JPA non è inizializzato. JPA Entity Manager si avvia automaticamente quando una o più classi annotate con l'annotazione @ javax.persistence.Entity vengono trovate nell'applicazione.JPA e thread nella struttura di gioco
Quello che sto cercando di fare è accedere al db dal nuovo thread ecco il codice
package controllers;
import java.util.Iterator;
import java.util.List;
import models.Ball;
public class MainLoop extends Thread {
@Override
public void run() {
List<Ball> balls;
new Ball(5,5,2,2,10,15);
while (true){
balls = Ball.all().fetch(); //Here throws an exception
for (Iterator iterator = balls.iterator(); iterator.hasNext();) {
Ball ball = (Ball) iterator.next();
ball.applyForces();
}
}
}
}
Tutte le idee?
Aggiornamento: è possibile rimuovere tutto il materiale JPA e sostituirlo con JPAPlugin.startTx e JPAPlugin.closeTx. –
Ho modificato la tua risposta per includere il tuo commento. – ripper234
Come lavorare con JPA.local con Play Framework 1.4 ?, cambia completamente – javaboygo