EN · DE · RU · FR · ES

#826: AddressImageDO.kt

projectforge-business/src/main/kotlin/org/projectforge/business/address/AddressImageDO.kt JPA-сущность — изображения адресов, projectforge-business/src/main/kotlin/org/projectforge/business/address/AddressImageDO.kt 87 строк · 53 кода · 25 комментариев · 9 пустых
JPA-сущность для хранения изображений адресов (фотографий, логотипов) с ленивой загрузкой BLOB и миниатюрами для предпросмотра. Отделена от AddressDO для повышения производительности — изображения загружаются только по запросу через именованные запросы.

Архитектура

Данная Kotlin-сущность была выделена из AddressDO (коммит f99817436) для улучшения производительности за счёт ленивой загрузки. Ключевые аспекты дизайна:

Именованные запросы

Запрос Назначение
SELECT_WITHOUT_IMAGES Получение метаданных изображения (ID, тип, lastUpdate) без BLOB-данных — используется в списках
SELECT_IMAGE_ONLY Получение полного BLOB изображения — используется для скачивания
SELECT_IMAGE_PREVIEW_ONLY Получение BLOB миниатюры/предпросмотра — используется в галереях
DELETE_ALL_IMAGES_BY_ADDRESS_ID Массовое удаление всех изображений адреса — используется при удалении адреса

Сущность поддерживает обработку изображений CardDAV (коммит c5b4b738b), что делает фотографии адресов доступными по протоколу CardDAV вместе с данными vCard.

История Git

868d6abb7 2025 -> 2026
63081666f Заголовки исходных файлов: 2024 -> 2025.
0237d5eba Рефакторинг JSON-сериализации: введены IdOnlySerializer и IdsOnlySerializer.
2bcdfbbc6 WIP: хранение ордеров.
943947aaa Адреса: поддержка gif и jpeg (также для сервера carddav).
c5b4b738b WIP: CardDav сервер, обработка изображений.
d6ad9ea38 Работа над миграцией в процессе...
66ec668f6 Работа над миграцией в процессе...
e33c8b9c2 Работа над миграцией в процессе...
06828f490 Работа над миграцией в процессе...
b6092df09 Copyright 2023 -> 2024
ab45d51fa Copyright 2001-2022 -> 2001-2023.
5f7ef41b8 Copyright 2021 -> 2022
f54103172 AddressDao.forceDelete теперь работает корректно, даже если были изображения.
ceb63e8a1 Заголовок исходного кода: (C) 2001-2021.
ae182f8a1 Github issue #135, оптимизация производительности с JProfiler.
f99817436 Изображения адресов теперь в отдельной сущности. Улучшает производительность за счёт ленивой загрузки.
7c79f1922 Copyright заголовка исходников -> 2020.
af35917ac Ещё больше очистки кода
ca5a7c00f Оптимизация импортов
05244ff19 Обновлены или созданы заголовки всех Kotlin-файлов.
da6eec0f6 AddressAttrDataDO.java -> AddressAttrDataDO.kt
9ebb88522 Первоначальный коммит