AddressImageDO.ktAddressDO ausgelagert für die Leistung — Bilder werden nur bei Bedarf über benannte Abfragen geladen.Diese Kotlin-Entität wurde aus AddressDO (Commit f99817436) extrahiert, um die Leistung durch Lazy Loading zu verbessern. Wichtige Designaspekte:
T_ADDRESS_IMAGE, über eine @OneToOne-Beziehung mit FetchType.LAZY an das übergeordnete AddressDO angebunden.image (volle Größe) und imagePreview (Vorschaubild) sind beide mit @Basic(fetch = FetchType.LAZY) annotiert, um zu verhindern, dass große BLOB-Daten in Listenansichten geladen werden. Die benannten Abfragen SELECT_WITHOUT_IMAGES und SELECT_IMAGE_ONLY ermöglichen einen selektiven Abruf.ImageType (JPG, GIF, PNG), gespeichert als 5-stellige Zeichenfolgenspalte.address-Rückreferenz verwendet @JsonSerialize(using = IdOnlySerializer::class) — bei der Serialisierung in JSON (REST-API) wird nur die address.id ausgegeben, wodurch zirkuläre Serialisierung und tiefe Objektgraphen vermieden werden.@Indexed-Annotation ist bei dieser Entität nicht vorhanden, was bedeutet, dass Adressbilder implizit über ihr übergeordnetes AddressDO indiziert werden (das im Volltextsuchindex registriert ist).| Abfrage | Zweck |
|---|---|
SELECT_WITHOUT_IMAGES | Bildmetadaten (ID, Typ, letzte Aktualisierung) ohne BLOB-Daten abrufen — wird in Listenansichten verwendet |
SELECT_IMAGE_ONLY | Vollständiges Bild-BLOB abrufen — wird für den Bilddownload verwendet |
SELECT_IMAGE_PREVIEW_ONLY | Vorschau-/Miniaturansicht-BLOB abrufen — wird für Galerieansichten verwendet |
DELETE_ALL_IMAGES_BY_ADDRESS_ID | Massenlöschung aller Bilder einer Adresse — wird beim Löschen einer Adresse verwendet |
Die Entität unterstützt die CardDAV-Bildverarbeitung (Commit c5b4b738b) und stellt Adressfotos über das CardDAV-Protokoll zusammen mit vCard-Daten bereit.
868d6abb7 2025 -> 2026 63081666f Quelltextdatei-Header: 2024 -> 2025. 0237d5eba JSON-Serialisierung umgestaltet: IdOnlySerializer und IdsOnlySerializer eingeführt. 2bcdfbbc6 WIP: Orderbook-Speicher. 943947aaa Adressen: Unterstützung von GIF und JPEG (auch für CardDAV-Server). c5b4b738b WIP: CardDav-Server, Bildverarbeitung. d6ad9ea38 Migration in Arbeit... 66ec668f6 Migration in Arbeit... e33c8b9c2 Migration in Arbeit... 06828f490 Migration in Arbeit... b6092df09 Copyright 2023 -> 2024 ab45d51fa Copyright 2001-2022 -> 2001-2023. 5f7ef41b8 Copyright 2021 -> 2022 f54103172 AddressDao.forceDelete funktioniert jetzt auch, wenn Bilder vorhanden waren. ceb63e8a1 Quelltextkopf: (C) 2001-2021. ae182f8a1 Github Issue #135, Leistungsoptimierung mit JProfiler. f99817436 Bilder von Adressen jetzt in separater Entität. Verbessert die Leistung durch Lazy Loading. 7c79f1922 Copyright des Quelltextkopfes -> 2020. af35917ac Weitere Code-Bereinigung ca5a7c00f Optimierung der Importe 05244ff19 Copyright aller Kotlin-Dateiköpfe aktualisiert oder erstellt. da6eec0f6 AddressAttrDataDO.java -> AddressAttrDataDO.kt 9ebb88522 Erster Commit