(Henri Matisse - Taller Rojo)
A developer has obtained a container-managed entity manager in a stateless session bean. Which to statements are correct? (Choose two)
- Invoking the flush method without a transaction will throw an exception
- Invoking the clear method without a transaction will throw an exception
- Invoking the persist method without a transaction will throw an exception
- Invoking the find method for an entity that does not exist will throw an exception
Siempre es bueno darle una mirada más a los métodos de EntityManager. El método flush escribe los cambios realizados en la transacción actual en la base de datos. De ocurrir excepciones durante flush la transacción es marcada para rollback. Este método requiere de una transacción activa , de no encontrarla, se lanza la excepción TransactionRequiredException.
El método clear() limpia el EntityManager y finaliza el contexto de persistencia. Todas las entidades administradas pasan al estado DETACHED (no administradas pues).
El método persist se utiliza para pasar instancias nuevas al esto administradas (MANAGED). En el siguiente FLUSH o COMMIT, las nuevas instancias serán insertadas en base de datos. El método persist() lanza la excepción IllegalArgumentException si la instancia a persistir no es del tipo entidad. Se lanza TransactionRequiredException si el método no es invocado desde una transacción. Sin embargo, si el entity manager corresponde a un contexto de persistencia extendido, es legal invocar persist() fuera de una transacción, y el insert se mantiene en espera hasta que el contexto de persistencia interactúe con una transacción.
Y para terminar, el método find devuelve una instancia para un tipo y una identidad proporcionadas como parámetro. Si la instancia se encuentra en el contexto de persistencia actual, se devuelve la versión en caché. Caso contrario, se construye una nueva entidad y se carga con la data presente en base de datos. Si no se encuentra una entidad con el tipo y la identidad solicitadas, este método retorna null.
Haciendo un llamado a su capacidad de comprensión de lectura, concluimos que la primera y la tercera alternativa son correctas.
Pregunta tomada de ExamWorx
Publicar un comentario