Sie dürfen die Session
nicht verwenden und Transaktion
als Klassenmitglied deines dao so. Session/EntityManager
von der Arbeitseinheit abhängig sein sollen, sind sie nicht Thread-sicher.
In Ihrem aktuellen Zustand, da Spring DI Beans als Singleton erstellt, überschreibt der zweite, wenn zwei Threads das Dao gleichzeitig verwenden, beide Session
und Transaktion
Mitglieder, weshalb ich annehme, dass Sie die IllegalStateExcepion erhalten.
Sie müssen sie Thread-bezogen machen, indem Sie sie entweder als Variablen in Methoden verwenden oder, wenn Sie die spezielle Methode von Hibernate nicht benötigen, eine vollständige JPA-Konfiguration in Spring wählen und @PersistenceContext/@PersistenceUnit
das Framework sich mit diesem Problem befassen zu lassen.