Class HistoricalDatabaseTable

  • All Implemented Interfaces:
    java.io.Serializable, java.lang.Cloneable, CoreTable

    public class HistoricalDatabaseTable
    extends DatabaseTable
    INTERNAL: An impersonating database table is one that pretends to be another database table, and whose true identity is revealed only when printed as SQL.

    a.k.a HistoricalDatabaseTable, DisguisedDatabaseTable

    More precisely, if a is impersonating b, (a.equals(b) == true) but (a.getQualifiedName().equals(b.getQualifiedName()) == false).

    This class is used in temporal versioning, where every update to one table triggers an update to a nearly identical historical table. This second update is almost identical to the first, save that the table names are different (i.e. EMPLOYEE -> EMPLOYEE_HIST). It is much easier just to switch the table names at the last minute, as database fields in the descriptors and expressions have hardcoded table names.

    Since:
    OracleAS TopLink 10g (10.1.3)
    Author:
    Stephen McRitchie
    See Also:
    Serialized Form
    • Field Detail

      • historicalName

        protected java.lang.String historicalName
      • historicalNameDelimited

        protected java.lang.String historicalNameDelimited
    • Constructor Detail

      • HistoricalDatabaseTable

        public HistoricalDatabaseTable()
      • HistoricalDatabaseTable

        public HistoricalDatabaseTable​(java.lang.String name,
                                       java.lang.String qualifier)
      • HistoricalDatabaseTable

        public HistoricalDatabaseTable​(java.lang.String possiblyQualifiedName)
      • HistoricalDatabaseTable

        public HistoricalDatabaseTable​(DatabaseTable source,
                                       DatabaseTable mirroring,
                                       DatasourcePlatform platform)
        Constructs a new database table which appears as guise but in fact really is identity.