Interface ExternalDatabaseReadService
- All Known Implementing Classes:
ExternalDatabaseReadServiceImpl
ExternalDatabase.
Phase 3 of the ExternalDatabaseService decomposition (strangler fig). This
service houses the DAO-bound read cluster previously implemented directly on the
ExternalDatabaseServiceImpl facade: loadAllWithAuditTrail,
loadWithExternalDatabases, findByName,
findByNameWithExternalDatabases, findByNameWithAuditTrail, and
findAllByNameIn. All methods delegate to ExternalDatabaseDao (with
simple Hibernate.initialize(Object) wrapping where appropriate)
and orchestrate no other collaborators.
Write-side methods (create, findOrCreate, update,
updateReleaseDetails, updateReleaseLastUpdated, remove, plus
the inherited BaseService mutators) stay on the ExternalDatabaseService
facade.
Callers should generally keep using ExternalDatabaseService as the facade --
the facade delegates to this service. Direct injection is appropriate where a class
is logically read-only (REST endpoints, CLIs, browser controllers, intra-core readers).
ACL / @Secured annotations live on ExternalDatabaseService (the
caller-facing facade interface); enforcement happens at the facade proxy boundary,
so this interface is intentionally unsecured. (The facade declares
@Secured("GROUP_ADMIN") on loadAllWithAuditTrail and
@Secured("GROUP_AGENT") on findByNameWithAuditTrail -- those checks
still fire when the facade is the call site; intra-gemma-core callers that
inject this service directly bypass the duplicate ACL check.)
- See Also:
-
Method Summary
-
Method Details
-
loadAllWithAuditTrail
Collection<ExternalDatabase> loadAllWithAuditTrail() -
loadWithExternalDatabases
-
findByName
-
findByNameWithExternalDatabases
-
findByNameWithAuditTrail
-
findAllByNameIn
-