AddressImageDO.ktAddressDO por rendimiento: las imágenes se cargan solo bajo demanda mediante consultas nombradas.
Esta entidad Kotlin fue extraída de AddressDO (commit f99817436) para mejorar el rendimiento mediante
carga diferida. Aspectos clave del diseño:
T_ADDRESS_IMAGE, mapeada al padre AddressDO mediante @OneToOne con FetchType.LAZY.image (tamaño completo) e imagePreview (miniatura) están anotadas con @Basic(fetch = FetchType.LAZY), evitando que datos BLOB pesados se carguen en vistas de lista. Las consultas nombradas SELECT_WITHOUT_IMAGES y SELECT_IMAGE_ONLY permiten recuperación selectiva.ImageType (JPG, GIF, PNG) almacenado como columna de cadena de 5 caracteres.address usa @JsonSerialize(using = IdOnlySerializer::class) — al serializar a JSON (API REST), solo se emite address.id, evitando serialización circular y grafos de objetos profundos.@Indexed no está presente en esta entidad, lo que implica que las imágenes de direcciones se indexan implícitamente a través de su padre AddressDO (que está registrado en el índice de búsqueda de texto completo).| Consulta | Propósito |
|---|---|
SELECT_WITHOUT_IMAGES |
Obtener metadatos de imagen (ID, tipo, última actualización) sin datos BLOB — usado en vistas de lista |
SELECT_IMAGE_ONLY |
Obtener el BLOB de imagen completo — usado para descarga de imágenes |
SELECT_IMAGE_PREVIEW_ONLY |
Obtener el BLOB de vista previa/miniatura — usado para vistas de galería |
DELETE_ALL_IMAGES_BY_ADDRESS_ID |
Eliminar en lote todas las imágenes de una dirección — usado durante la eliminación de direcciones |
La entidad soporta manejo de imágenes CardDAV (commit c5b4b738b), haciendo que las fotos de direcciones estén disponibles
a través del protocolo CardDAV junto con datos vCard.
868d6abb7 2025 -> 2026 63081666f Encabezados de archivos fuente: 2024 -> 2025. 0237d5eba Refactorización de serialización JSON: introducidos IdOnlySerializer e IdsOnlySerializer. 2bcdfbbc6 WIP: almacenamiento de libro de órdenes. 943947aaa Direcciones: soporte de gif y jpeg (también para servidor carddav). c5b4b738b WIP: servidor CardDav, manejo de imágenes. d6ad9ea38 Trabajo de migración en curso... 66ec668f6 Trabajo de migración en curso... e33c8b9c2 Trabajo de migración en curso... 06828f490 Trabajo de migración en curso... b6092df09 Copyright 2023 -> 2024 ab45d51fa Copyright 2001-2022 -> 2001-2023. 5f7ef41b8 Copyright 2021 -> 2022 f54103172 AddressDao.forceDelete funciona ahora también si se proporcionaron imágenes. ceb63e8a1 Encabezado de código fuente: (C) 2001-2021. ae182f8a1 Problema de Github #135, optimización de rendimiento con JProfiler. f99817436 Imágenes de direcciones ahora en entidad separada. Mejora el rendimiento debido a la carga diferida. 7c79f1922 Copyright del encabezado fuente -> 2020. af35917ac Más limpieza de código ca5a7c00f Optimizar importaciones 05244ff19 Copyright de todos los encabezados de archivos Kotlin actualizado o creado. da6eec0f6 AddressAttrDataDO.java -> AddressAttrDataDO.kt 9ebb88522 Commit inicial