La primera SCBCD del día: Entity Lifecycle Management

(Henri Matisse - Autorretrato con polo a rayas)

Which statement about an entity instance lifecycle is correct?

  • A new entity instance is an instance with a fully populated state
  • A detached entity instance is an instance with no persistent identity
  • A removed entity instance is NOT associated with a persistence context
  • A managed entity instance is the instance associated with a persistence context

Hora de revisar el ciclo de vida de una entidad. Una entidad "nueva" (new) no posee identidad de persistencia y aún no está asociada a un contexto de persistencia. Después de invocar a persist(), pasa al estado "administrada" (managed), donde ya está asociada a un contexto de persistencia.

Si invocamos remove () en una entidad administrada pasa a ser "removida" (removed). Una entidad removida posee identidad de persistencia, está asociada a un contexto de persistencia, y está marcada para ser removida de base de datos.

Una entidad no administrada (detached) posee identidad de persistencia pero ya no está asociada al contexto de persistencia. Una entidad pasa a ser no administrada después de un commit/rollback, si la entidad es pasada por valor, o si el EntityManager es cerrado. Si invocamos merge en una entidad no administrada, pasa a estar administrada.

Entonces, la cuarta dice la verdad.

Pregunta tomada de ExamWorx

Publicar un comentario