sql >> Base de Datos >  >> RDS >> Oracle

sesión/entitymanager está cerrado

No debe usar la Session y Transaction como miembro de la clase de tu dao así. Session/EntityManager se supone que están en el ámbito de la unidad de trabajo, no son seguros para subprocesos.

En su estado actual, como Spring DI crea beans como singleton, si dos subprocesos usan el dao al mismo tiempo, el segundo sobrescribirá ambos Session y Transaction miembros por lo que supongo que obtienes IllegalStateExcepion.

Debe hacer que tengan un alcance de subprocesos usándolos como variables en los métodos o, si no necesita el método específico de Hibernate, puede optar por una configuración completa de JPA en Spring y usar @PersistenceContext/@PersistenceUnit dejar que el marco se ocupe de ese problema.