English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Lazy y Eager son dos estrategias de carga de datos en ORM, por ejemplo, Hibernate y EclipseLink. Cuando una clase de entidad se refiere a otra entidad (por ejemplo, Employee y Phone (teléfono del empleado)), utilizamos estas estrategias de carga de datos.
Carga diferida-Los datos asociados se cargan solo cuando se llama explícitamente a los métodos getter o size
Al usar una colección de uno a muchos, utilice la carga diferida.
Cuando esté seguro de que no utiliza la entidad relacionada, utilice la 'carga diferida'.
Carga Egare-La carga de datos ocurre al obtener su padre
Cuando no haya muchas relaciones, utilice la 'carga apresurada'. Por lo tanto, la carga apresurada es un buen hábito para reducir las consultas adicionales en el servidor.
Cuando esté seguro de que desea usar la entidad principal en todas partes, utilice la 'carga apresurada'.
Número de secuencia | Clave | Perezoso | Apresurado |
---|---|---|---|
1 | Estrategia de extracción | En la carga diferida, los datos asociados se cargan solo cuando se llama explícitamente a los métodos getter o size | En la carga apresurada, la carga de datos ocurre al obtener su padre |
2 | Estrategia por defecto en la capa ORM | Por defecto, las asociaciones ManyToMany y OneToMany utilizan la estrategia de carga diferida. | Por defecto, las asociaciones ManyToOne y OneToOne utilizan la estrategia de carga diferida. |
3 | Configuración de carga | Se puede activar utilizando el parámetro de comentario: fetch = FetchType.LAZY | Se puede activar utilizando el parámetro de comentario: fetch = FetchType.EAGER |
4 | Rendimiento | El tiempo de carga inicial es mucho más corto que el de carga apresurada | Cargar demasiado datos innecesarios puede afectar el rendimiento |