A continuación se muestra el fragmento de código de muestra con la transacción de primavera. Mi pregunta: ¿Se utilizará la misma sesión para obtener entidades en la línea 1 y la línea 2?
Tengo entendido: - Creo que sí y estará garantizado por la transacción de primavera.
@Transactional() public void method1( //fetch entity1 from dao with the help of entity manager//line 1 // fetch entity2 from dao with the help of entity manager//line 2 // now I fetch thru method entity.fetchLazyField()// line 3 ) Ahora, si @Transactional() . Creo que la sesión se cerrará tan pronto como se obtenga la entidad1 y se usará una sesión separada para la línea2. Derecha ?
En la línea 3 (una vez que se elimine @Transactional ), ¿podré obtener datos o se debe lanzar una excepción de sesión cerrada?
No estoy pegando la configuración xml grande y el código dao completo que solo busca la entidad con el administrador de la entidad. El atributo de propagación de transacciones es Required
¿Se usará la misma sesión para obtener entidades en la línea 1 y la línea 2?
sí, tiene razón (suponiendo que no esté utilizando PersistenceContextType.EXTENDED )
Ahora, si elimino @Transactional(). Creo que la sesión se cerrará tan pronto como se obtenga la entidad1 y se usará una sesión separada para la línea2. Derecha ?