Contexto de persistencia y mappedBy

Sigue una petición POST /artistas/1/albumes/5 desde el Controller hasta la base de datos. Elige por qué lado agregas el álbum al artista y mira qué hace JPA con cada cambio.

¿Por qué lado agregas el álbum?
Controller

Controller

ArtistaAlbumController

      

Service

Service

ArtistaAlbumService

      

JPA

Persistencia

EntityManager (Hibernate)
Contexto de persistenciano existe

SQL que ejecuta Hibernate
Base de datos (H2)lo que quedó guardado

Las palabras de este diagrama

Contexto de persistencia
La memoria de trabajo de una transacción. Guarda los objetos que JPA cargó y vigila si cambian. Nace con la transacción y se cierra con ella.
Managed
Un objeto que está dentro del contexto. JPA lo vigila: si lo modificas, lo detecta sin que llames a save().
Copia original
Cómo estaba el objeto cuando se cargó. JPA la guarda para comparar contra el estado actual.
Dirty checking
Esa comparación, al terminar la transacción. Si encuentra diferencias en lo que JPA debe escribir, genera el SQL.
Lado dueño
El lado de la asociación que tiene @JoinTable o @JoinColumn. Es el único cuyos cambios se escriben en la base.
mappedBy
Marca el lado inverso: sirve para navegar la asociación desde ese objeto, pero JPA no escribe nada por sus cambios.