Class JoinPersistableRelationStore

java.lang.Object
org.datanucleus.store.rdbms.scostore.JoinPersistableRelationStore
All Implemented Interfaces:
org.datanucleus.store.types.scostore.PersistableRelationStore, org.datanucleus.store.types.scostore.Store

public class JoinPersistableRelationStore extends Object implements org.datanucleus.store.types.scostore.PersistableRelationStore
RDBMS implementation of a persistable relation backing store. Represents an N-1 unidirectional join table relation, and manages the access to the join table.
  • Field Details

    • storeMgr

      protected RDBMSStoreManager storeMgr
      Manager for the store.
    • dba

      protected DatastoreAdapter dba
      Datastore adapter in use by this store.
    • ownerMapping

      protected JavaTypeMapping ownerMapping
      Mapping to the owner of the relation (which holds the member).
    • ownerMemberMetaData

      protected org.datanucleus.metadata.AbstractMemberMetaData ownerMemberMetaData
      MetaData for the member in the owner.
    • joinTable

      protected PersistableJoinTable joinTable
      Table containing the link between owner and related object.
    • clr

      protected org.datanucleus.ClassLoaderResolver clr
      ClassLoader resolver.
    • addStmt

      protected String addStmt
      Statement for adding a relation to the join table.
    • updateStmt

      protected String updateStmt
      Statement for updating a relation to the join table.
    • removeStmt

      protected String removeStmt
      Statement for removing a relation from the join table.
  • Constructor Details

    • JoinPersistableRelationStore

      public JoinPersistableRelationStore(org.datanucleus.metadata.AbstractMemberMetaData mmd, PersistableJoinTable joinTable, org.datanucleus.ClassLoaderResolver clr)
      Constructor for a persistable relation join store for RDBMS.
      Parameters:
      mmd - owner member metadata
      joinTable - The join table
      clr - The ClassLoaderResolver
  • Method Details

    • getStoreManager

      public org.datanucleus.store.StoreManager getStoreManager()
      Specified by:
      getStoreManager in interface org.datanucleus.store.types.scostore.Store
    • getOwnerMemberMetaData

      public org.datanucleus.metadata.AbstractMemberMetaData getOwnerMemberMetaData()
      Specified by:
      getOwnerMemberMetaData in interface org.datanucleus.store.types.scostore.Store
    • add

      public boolean add(org.datanucleus.state.DNStateManager sm1, org.datanucleus.state.DNStateManager sm2)
      Specified by:
      add in interface org.datanucleus.store.types.scostore.PersistableRelationStore
    • remove

      public boolean remove(org.datanucleus.state.DNStateManager sm)
      Specified by:
      remove in interface org.datanucleus.store.types.scostore.PersistableRelationStore
    • update

      public boolean update(org.datanucleus.state.DNStateManager sm1, org.datanucleus.state.DNStateManager sm2)
      Specified by:
      update in interface org.datanucleus.store.types.scostore.PersistableRelationStore
    • getAddStmt

      protected String getAddStmt()
      Generates the statement for adding items.
       INSERT INTO JOINTABLE (OWNER_COL, RELATED_COL) VALUES (?,?)
       
      Returns:
      The Statement for adding an item
    • getUpdateStmt

      protected String getUpdateStmt()
      Generates the statement for updating items.
       UPDATE JOINTABLE SET RELATED_COL = ? WHERE OWNER_COL = ?
       
      Returns:
      The Statement for updating an item
    • getRemoveStmt

      protected String getRemoveStmt()
      Generates the statement for removing items.
       DELETE FROM JOINTABLE WHERE OWNER_COL = ?
       
      Returns:
      The Statement for removing an item
    • populateOwnerInStatement

      public static int populateOwnerInStatement(org.datanucleus.state.DNStateManager sm, org.datanucleus.ExecutionContext ec, PreparedStatement ps, int jdbcPosition, PersistableJoinTable joinTable)
      Convenience method to populate the passed PreparedStatement with the value from the owner.
      Parameters:
      sm - StateManager
      ec - execution context
      ps - The PreparedStatement
      jdbcPosition - Position in JDBC statement to populate
      joinTable - Join table
      Returns:
      The next position in the JDBC statement