Sobes.tech
Middle

¿Cuál es la diferencia entre carga perezosa (lazy) y carga ansiosa (eager)?

sobes.tech AI

Respuesta de la IA

La carga perezosa retrasa la inicialización del objeto hasta el primer acceso a él. La carga ansiosa inicializa el objeto inmediatamente al cargar el objeto principal que lo contiene.

Diferencias:

Característica Carga perezosa Carga ansiosa
Tiempo de carga En el primer uso Al cargar el objeto principal
Carga Distribuida en el tiempo Única, al inicio
Memoria Ahorra memoria inicialmente Puede requerir más memoria de inmediato
Rendimiento Mejor al trabajar con parte de los datos Puede ser más rápido si se necesitan todos los datos de inmediato

Ejemplo en Hibernate:

// Carga perezosa
@Entity
public class Order {
    @OneToMany(fetch = FetchType.LAZY)
    private List<Item> items;
}

// Carga ansiosa
@Entity
public class Order {
    @OneToMany(fetch = FetchType.EAGER)
    private List<Item> items;
}