Не трябва да използвате Session
и Transaction
като член на класа на вашето дао като този. Session/EntityManager
предполага се, че са обхванати от единица работа, те не са безопасни за нишки.
В текущото ви състояние, тъй като Spring DI създава бобове като сингълтън, ако две нишки използват dao едновременно, втората ще презапише и двете Session
и Transaction
членове, поради което предполагам, че получавате IllegalStateException.
Трябва да ги направите с обхват на нишка, като ги използвате като променливи в методи или, ако не се нуждаете от специфичния метод на hibernate, можете да изберете пълна JPA конфигурация през пролетта и да използвате @PersistenceContext/@PersistenceUnit
за да позволи на рамката да се справи с този проблем.