Ich verwende spring EntityManager
und habe eine Anforderung zum Festschreiben von Datensätzen über die Methodenvervollständigung. Das heißt, ich habe zwei Methoden für die Ex ::Spring EntityManager Commit Transaktion als Methode wird abgeschlossen
@Override
@Transactional
public void upsert(String lastSuccessfullRun) {
for(tableData in Tables){
insertIntoDB(tableData);
}
}
und das Verfahren insertIntoDB enthält die Buisness-Logik, die tatsächlich funktioniert die Aktualisierung abfragt
@Override
@Transactional(propagation=Propagation.REQUIRES_NEW)
public void insertIntoDB (String tableData) {
em.persist(tableData)
}
Aber das Problem ist, dass das Verfahren nicht begeht wie es für die nächste Schleife in Upsert-Methode zurückkehrt.
Wie kann ich die Methode abschließen?
Nachdem Sie persistiert haben, können Sie versuchen, entityManager.getTransaction(). Commit(); ', auch können Sie in Massen, anstatt für jedes Objekt, wenn es mehrere von ihnen sind. –
@NayanWadekar Da ich Spring EntityManager benutze, kann ich die 'getTransaction()' Methode nicht verwenden, da es eine Ausnahme auslöst, da die Transaktion nicht außerhalb des Spring Containers verwaltet werden kann. –
Sorry, nicht viel in den Frühling scheint dies ähnlich - http://Stackoverflow.com/q/12897882/366964 –