Oracle
 sql >> Baza danych >  >> RDS >> Oracle

sesja/menedżer podmiotu jest zamknięta

Nie wolno używać Session i Transaction jako członek klasy twojego dao w ten sposób. Session/EntityManager mają być objęte zakresem jednostki pracy, nie są bezpieczne wątkowo.

W twoim obecnym stanie, ponieważ Spring DI tworzy ziarna jako singleton, jeśli dwa wątki używają dao w tym samym czasie, drugi nadpisze obie Session i Transaction członków, dlatego przypuszczam, że otrzymasz IllegalStateExcepion.

Musisz ustawić je w zakresie wątku, używając ich jako zmiennych w metodach lub, jeśli nie potrzebujesz konkretnej metody hibernacji, możesz przejść do pełnej konfiguracji JPA w Spring i użyć @PersistenceContext/@PersistenceUnit aby framework poradził sobie z tym problemem.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Modelowanie danych dla EAV

  2. Oracle 11g — Unpivot

  3. Dlaczego funkcja Oracle to_char() dodaje spacje?

  4. Nieprawidłowy identyfikator w podwójnie zagnieżdżonym zapytaniu z ORDER BY i ROWNUM

  5. Użyj ciągu zawiera funkcję w zapytaniu Oracle SQL