#145: LicenseDO.kt

plugins/org.projectforge.plugins.licensemanagement/src/main/kotlin/org/projectforge/plugins/licensemanagement/LicenseDO.kt Path: plugins/...licensemanagement/src/main/kotlin/.../LicenseDO.kt · Lines: 154 · Author: Kai Reinhard · Type: Kotlin JPA @EntityDefaultBaseDO subclass 154 lines · 95 code · 37 comments · 22 blank

JPA entity for license records. Maps to T_PLUGIN_LM_LICENSE table. Extends DefaultBaseDO (provides id, created, lastUpdate, deleted). 154 lines, 16 data fields + 1 computed property.

Text/searchable fields (15 fields with @FullTextField for Hibernate Search indexing):

BLOB file storage (2 binary attachment slots — note: not JCR, uses direct database BLOBs):

Both BLOB fields are annotated @NoHistory (excluded from history/delta tracking — binary diffs would be meaningless) and FetchType.LAZY (loaded only when explicitly accessed, not on every query). Uses @JdbcTypeCode(SqlTypes.BLOB) for proper JDBC BLOB handling.

Computed property: orderString (@Transient) — returns "$organization-$product-$version" for sorting and display.

toString(): custom implementation using ReflectionToString that excludes file1 and file2 (binary content would produce meaningless hex dumps).