Virtual lookup service update
The Curator Tool uses "Lookup tables" to map entity id
to a human-readable string. The VirtualLookupService
supports the use of Curator Tool with GGCE without needing to generate custom SQL queries.
The current implementation uses @LookupValue
field annotation (usually on id
), but fetches entire entity and uses @LookupDisplay
annotation on methods to populate the string part. This is a performance bottleneck because it loads entire Inventory
only to read inventoryNumber
.
Upgrade the implementation to allow using @LookupDisplay
on entity fields. When it is defined on a field, then the implementation needs to query only for the two fields annotated with @LookupId
and @LookupDisplay
and does not need to fetch entire entities from the database.
Entity updates
Check all entities if @LookupDisplay
is defined on a simple getter and move it to the relevant field. Important examples are TaxonomySpecies#getName()
and Inventory#getInventoryNumber()
.