Nesmíte použít Session
a Transaction
jako člen třídy vašeho dao takhle. Session/EntityManager
předpokládá se, že jsou vymezeny podle jednotky práce, nejsou bezpečné pro vlákna.
Ve vašem současném stavu, kdy Spring DI vytváří fazole jako singleton, pokud dvě vlákna používají dao současně, druhé přepíše obě Session
a Transaction
členů, což je důvod, proč předpokládám, že získáte IllegalStateExcepion.
Musíte jim nastavit rozsah vláken tím, že je použijete jako proměnné v metodách, nebo, pokud nepotřebujete specifickou metodu hibernace, můžete přejít na plnou konfiguraci JPA na jaře a použít @PersistenceContext/@PersistenceUnit
aby se rámec vypořádal s tímto problémem.