Class ArrayDesignPersister

java.lang.Object
ubic.gemma.persistence.persister.ArrayDesignPersister

@Component("arrayDesignPersister") public class ArrayDesignPersister extends Object
Handles persisting array designs.

Persister-shrink S2c: lifted out of the GenomePersister inheritance chain into a concrete @Component. Genome and Common collaboration is via @Autowired fields (genome, common); the protected doPersist entry point remains so the still-extant RelationshipPersister chain keeps compiling (delegates to persistArrayDesign(ArrayDesign) for the AD arm, falls through to genome.doGenome / common.doCommon, then throws).

Phase 3 persister retirement: rewired to BusinessKey.find(Session, ArrayDesign) for the root-level "find existing" lookup, with the compositeSequences and externalReferences collections flowing through Hibernate's cascade="all" on ArrayDesign.getCompositeSequences() and ArrayDesign.getExternalReferences() (see ArrayDesign.hbm.xml). The remaining responsibilities here are:

  • Pre-resolve BioSequence per composite sequence — BioSequences have their own lifecycle (shared across array designs) and are not cascaded from CompositeSequence; they must be looked up / created before dao.create.
  • Pre-resolve the design provider, primary taxon, and the external database for each external reference — these are many-to-one associations without cascade.

The ArrayDesignsForExperimentCache contract is unaffected: that cache is populated explicitly by ExpressionExperimentPrePersistServiceImpl and GeoServiceImpl, never as a side effect of this persister.

Author:
pavlidis