Tipos de datos embebidos

Intermedio
Hibernate
Hibernate
Hoy: 03/07/2025

¡Desbloquea el curso completo!

IA
Ejercicios
Certificado
Entrar

Introducción

Los tipos de datos embebidos, también conocidos como tipos “Embeddable”, son clases en Java que no se mapean directamente a una tabla en la base de datos, sino que se incluyen en otras entidades como si fueran parte de ellas. Esto permite modelar de manera más natural algunas relaciones entre los datos, agrupando en una clase atributos que lógicamente pertenecen juntos.

Los tipos embebidos se utilizan para representar un conjunto de atributos que comúnmente van juntos y son reutilizados por varias entidades. Por ejemplo, una dirección postal que incluye calle, número, código postal, etc., puede ser parte de una entidad Persona y también de una entidad Empresa. En lugar de repetir estos campos en cada entidad, se crea una clase Direccion marcada como @Embeddable, y luego se incluye en las entidades donde se necesite con la etiqueta @Embedded.

¿Te está gustando esta lección?

Inicia sesión para no perder tu progreso y accede a miles de tutoriales, ejercicios prácticos y nuestro asistente de IA.

Progreso guardado
Asistente IA
Ejercicios
Iniciar sesión gratis

Más de 25.000 desarrolladores ya confían en CertiDevs

Definición de un tipo embebido

Primero, puede definirse una clase Direccion como un tipo embebido:

package com.ejemplo.hibernate;

import jakarta.persistence.Embeddable;

@Embeddable
public class Direccion {
    private String calle;
    private String numero;
    private String codigoPostal;
    private String ciudad;

    // Constructores, getters y setters
}

Luego, podrá utilizarse la clase Direccion en la entidad Persona:

package com.ejemplo.hibernate;

import jakarta.persistence.Entity;
import jakarta.persistence.Id;
import jakarta.persistence.Embedded;

@Entity
public class Persona {
    @Id
    private Long id;
    private String nombre;
    
    @Embedded
    private Direccion direccion; // Aquí se utiliza el tipo embebido

    // Constructores, getters y setters
}

Configuración Avanzada

Hibernate también permite personalizar cómo se mapean los atributos de un tipo embebido a columnas en la base de datos. Por ejemplo, si queremos prefijar los nombres de las columnas relacionadas con la dirección, puede hacerse de la siguiente manera:

@Embedded
@AttributeOverrides({
    @AttributeOverride(name="calle", column=@Column(name="dir_calle")),
    @AttributeOverride(name="numero", column=@Column(name="dir_numero")),
    @AttributeOverride(name="codigoPostal", column=@Column(name="dir_cp")),
    @AttributeOverride(name="ciudad", column=@Column(name="dir_ciudad"))
})
private Direccion direccion;

Esto resulta en que los campos de Direccion se mapeen a columnas dir_calle, dir_numero, dir_cp, dir_ciudad, respectivamente, en la tabla correspondiente a la entidad Persona.

Aprendizajes de esta lección

  • Comprender el concepto de tipos de datos embebidos en Java y su propósito.
  • Aprender a definir y utilizar clases embebidas en otras entidades mediante anotaciones específicas.
  • Conocer la manera de personalizar el mapeo de atributos de tipos embebidos a columnas en la base de datos.
  • Mejorar el diseño de bases de datos evitando la redundancia de atributos en múltiples tablas.

Completa Hibernate y certifícate

Únete a nuestra plataforma y accede a miles de tutoriales, ejercicios prácticos, proyectos reales y nuestro asistente de IA personalizado para acelerar tu aprendizaje.

Asistente IA

Resuelve dudas al instante

Ejercicios

Practica con proyectos reales

Certificados

Valida tus conocimientos

Más de 25.000 desarrolladores ya se han certificado con CertiDevs

⭐⭐⭐⭐⭐
4.9/5 valoración