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;
}