sql >> Databáze >  >> RDS >> Oracle

session/entitymanager je uzavřen

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.



  1. PHP MySQL - přidání řádku uprostřed smyčky

  2. Nejnovější Oracle Data Provider for .NET (11.2.0.3.20) přerušil průvodce EF Update Wizard

  3. Nelze se připojit k místnímu PostgreSQL

  4. Může relační databáze horizontálně škálovat