Entidades embebidas

Contactar con el profesor

Permiten definir un grupo de propiedades en una clase externa. Son útiles cuando queremos evitar consultas 1 a 1 que restarían eficiencia a nuestra aplicación.

La siguiente estructura de clases dará lugar a una única tabla en la base de datos que contendrá la suma de todos los atributo.

@Entity
public class Autor {
	...	
	@Embedded
	private Direccion direccion;
@Embeddable
public class Direccion {
	private String calle;
	private int numero;
	private int piso;
	private int puerta;

Si quieres que la entidad embebida sea además clave primaria, usaremos la etiqueta @EmbeddedID en lugar de @Embedded,

Para no tener el siguiente error, tendremos que pasarle una dirección al autor siempre que lo vayamos a salvar.

javax.persistence.PersistenceException: org.hibernate.PropertyValueException: not-null property references a null or transient value ...

Para evitar este error, podemos hacer que la propiedad @Embeddable y que al menos una de sus propiedades acepten valores nulos, utilizando la siguiente anotación:

@Column(nullable = true)
← Ejercicios
Eventos en Hibernate →

Aviso Legal | Política de privacidad