Class JoinArrayStore<E>

All Implemented Interfaces:
org.datanucleus.store.types.scostore.ArrayStore<E>, org.datanucleus.store.types.scostore.Store

public class JoinArrayStore<E> extends AbstractArrayStore<E>
Implementation of a Join ArrayStore
  • Constructor Details

    • JoinArrayStore

      public JoinArrayStore(org.datanucleus.metadata.AbstractMemberMetaData mmd, ArrayTable arrayTable, org.datanucleus.ClassLoaderResolver clr)
      Constructor for an RDBMS implementation of a join array store.
      Parameters:
      mmd - Metadata for the owning field/property
      arrayTable - The Join table
      clr - ClassLoader resolver
  • Method Details

    • iterator

      public Iterator<E> iterator(org.datanucleus.state.DNStateManager ownerSM)
      Description copied from class: AbstractArrayStore
      Accessor for an iterator through the array elements.
      Specified by:
      iterator in interface org.datanucleus.store.types.scostore.ArrayStore<E>
      Specified by:
      iterator in class AbstractArrayStore<E>
      Parameters:
      ownerSM - StateManager for the container.
      Returns:
      The Iterator
    • getIteratorStatement

      public ElementIteratorStatement getIteratorStatement(org.datanucleus.ExecutionContext ec, org.datanucleus.FetchPlan fp, boolean addRestrictionOnOwner)
      Method to return the SQLStatement and mapping for an iterator for this backing store. Create a statement of the form
       SELECT ELEM_COLS
       FROM JOIN_TBL
         [JOIN ELEM_TBL ON ELEM_TBL.ID = JOIN_TBL.ELEM_ID]
       [WHERE]
         [JOIN_TBL.OWNER_ID = {value}] [AND]
         [JOIN_TBL.DISCRIM = {discrimValue}]
       [ORDER BY {orderClause}]
       
      Parameters:
      ec - ExecutionContext
      fp - FetchPlan to use in determing which fields of element to select
      addRestrictionOnOwner - Whether to restrict to a particular owner (otherwise functions as bulk fetch for many owners).
      Returns:
      The SQLStatement and its associated StatementClassMapping