Class SchemaTable

  • All Implemented Interfaces:
    Table, org.datanucleus.store.schema.table.Table

    public class SchemaTable
    extends TableImpl
    Class defining DataNucleus schema definition tables. Represents a table in the datastore storing the class and table mappings. This table is used when restarting a DataNucleus system so that it is 'aware' of what classes were supported the previous time this datastore was used. It uses this information to pre-populate the RDBMSManager with the classes stored in this table. The table names are not used as such, other than as a record of what table a class maps to - because it goes off and finds the MetaData for the class which, with the DataNucleus naming scheme, defines the table name anyway.
    • Constructor Detail

      • SchemaTable

        public SchemaTable​(RDBMSStoreManager storeMgr,
                           String tableName)
        Constructor.
        Parameters:
        storeMgr - The RDBMSManager for this datastore
        tableName - Name of the starter table (optional, uses NUCLEUS_TABLES when this is null)
    • Method Detail

      • initialize

        public void initialize​(org.datanucleus.ClassLoaderResolver clr)
        Method to initialise the table.
        Parameters:
        clr - The ClassLoaderResolver
      • getIdMapping

        public JavaTypeMapping getIdMapping()
        Accessor for a mapping for the ID (persistable) for this table.
        Returns:
        The (persistable) ID mapping.
      • getAllClasses

        public HashSet getAllClasses​(org.datanucleus.store.connection.ManagedConnection conn)
                              throws SQLException
        Accessor for the classes already supported by this Schema Table.
        Parameters:
        conn - Connection for this datastore.
        Returns:
        The HashSet of class names (StoreData)
        Throws:
        SQLException - Thrown when an error occurs in the process.
      • addClass

        public void addClass​(RDBMSStoreData data,
                             org.datanucleus.store.connection.ManagedConnection conn)
                      throws SQLException
        Method to insert a row in the SchemaTable. This is called when DataNucleus is now supporting a new class (and hence DB table).
        Parameters:
        data - Data for the class
        conn - Connection to the datastore
        Throws:
        SQLException - Thrown when an error occurs inserting the schema.
      • deleteClass

        public void deleteClass​(String class_name,
                                org.datanucleus.store.connection.ManagedConnection conn)
                         throws SQLException
        Method to delete a class from the SchemaTable. This is called when DataNucleus is required to clean out support for a particular class.
        Parameters:
        class_name - Name of class to delete
        conn - Connection to the datastore
        Throws:
        SQLException - Thrown when an error occurs deleting the schema.
      • deleteAllClasses

        public void deleteAllClasses​(org.datanucleus.store.connection.ManagedConnection conn)
                              throws SQLException
        Method to delete all classes from the SchemaTable. This is called when DataNucleus is required to clean out its supported classes (and hence DB table).
        Parameters:
        conn - Connection to the datastore
        Throws:
        SQLException - Thrown when an error occurs deleting the schema.
      • getMemberMapping

        public JavaTypeMapping getMemberMapping​(org.datanucleus.metadata.AbstractMemberMetaData mmd)
        Accessor the for the mapping for a field/property stored in this table.
        Parameters:
        mmd - MetaData for the field whose mapping we want
        Returns:
        The mapping