#1257: HibernateSearchMeta.kt

projectforge-business/src/main/kotlin/org/projectforge/framework/persistence/api/impl/HibernateSearchMeta.kt Search Metadata Registry (Singleton), projectforge-business/src/main/kotlin/org/projectforge/framework/persistence/api/impl/HibernateSearchMeta.kt 65 lines · 32 code · 26 comments · 7 blank
Thread-safe singleton registry of HibernateSearchClassInfo instances, keyed by entity class. Lazily constructs HibernateSearchClassInfo on first access via ensureClassInfo(). Exposes getSearchFields() used by Wicket list pages for search field tooltips, merging additional DAO search fields.

Architecture

Key Methods

MethodDescription
getSearchFields(dao)Returns sorted, deduplicated array of all + additional search field names for Wicket tooltips
getClassInfo(baseDO)Gets existing class info; throws IllegalArgumentException if not found
ensureClassInfo(baseDao)Gets or lazily creates class info, stored in synchronized(classInfos) block

Uses synchronized(classInfos) for thread-safe initialization. Calls HibernateSearchClassInfo(baseDao) which introspects annotations and logs search info.

Git History

868d6abb7 2025 -> 2026
53eb65c4e HibernateSearchMeta.getSearchFields adds now additionalSearchFields of dao.
63081666f Source file headers: 2024-> 2025.
7957637da Migration stuff in progress... (all tests of all packages: OK).
b6092df09 Copyright 2023 -> 2024