Pregunta SCBCD: EntityManagerFactory

(Imagen: Henri Matisse - Desnudo Azul II)

Within a Java EE environment, which annotation can be used to inject an entity manager factory?

  • @Entity
  • @Factory
  • @JTAFActory
  • @PersistenceUnit
  • @PersistenceContext

Los EntityManagers pueden ser creados u obtenidos desde un EntityManagerFactory. En aplicaciones Java SE, es necesario crear instancias de EntityManager desde EntityManagerFactory, pero en aplicaciones Java EE esto no es obligatorio.

EntityManagerFactory posee el método createEntityManager, que nos devuelve instancias de EntityManager que administran contextos de persistencia extendidos. Una vez que se termina de utilizar el EntityManagerFactory, se debe invocar a close() (a menos que sea inyectado). Con el método isOpen() verificamos si una referencia a EntityManagerFactory es válida.

Ahora que sabemos lo que es un EntityManagerFactory, veamos como obtenerlo. En aplicaciones Java EE se puede inyectar directamente en un campo o método setter mediante la anotación @javax.persistence.PersistenceUnit.

A diferencia de lo que ocurre en aplicaciones Java SE, un EntityManagerFactory inyectado es cerrado automáticamente por el contenedor EJB al descartar la instancia. En efecto, si se invoca a close() desde un EntityManagerFactory inyectado se lanza la excepción IllegalStateException.

Entonces, la respuesta es la cuarta.

Pregunta tomada de ExamWorx

2 comments

Suerte en tu certificación, yo tbm me certifique en SCJP y SCWCD... y ando viendo si hago la de Web services pero casi no tengo tiempo.
La idea de llevar tu estudio en el blog es buena.

Saludos.

Reply

Gracias por pasar el blog, y ojalá la idea sea lo suficientemente buena como para hacerme pasar el examen. Saludos!

Reply

Publicar un comentario