Java .parallelStream () mit mit Spring-Annotationen versehenen Methoden
Ich versuche es mit derparallelStream()
in DAO mit Frühling@Transactional
Anmerkungen und so Problem bekommen:
@Transactional
public void processCollection(Collection<Object> objects) {
objects.parallelStream()
.forEach(this::processOne); //throw exception
}
@Transactional
public void processOne(Object o) {
...
}
Funktioniert richtig:
@Transactional
public void processCollection(Collection<Object> objects) {
objects.stream()
.forEach(this::processOne); //work correctly
}
@Transactional
public void processOne(Object o) {
...
}
Ausnahme:
org.hibernate.HibernateException: No Session found for current thread
org.springframework.orm.hibernate4.SpringSessionContext.currentSession(SpringSessionContext.java:106)
org.hibernate.internal.SessionFactoryImpl.getCurrentSession(SessionFactoryImpl.java:978)
Wie kann ich verwenden@Transactional
Kommentierte Methoden vonparallelStream()
?
Aktualisieren Warum passiert das?Frühlingstransaktionsmanager und Multithreading Aber ich hoffe, Spring 4 mit Java 8-Unterstützung kann eine Lösung dafür bieten. Irgendwelche Ideen?