Class HistoricalDatabaseTable

java.lang.Object
org.eclipse.persistence.internal.helper.DatabaseTable
org.eclipse.persistence.internal.history.HistoricalDatabaseTable
All Implemented Interfaces:
Serializable, 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)
See Also:
  • Field Details

    • historicalName

      protected String historicalName
    • historicalNameDelimited

      protected String historicalNameDelimited
  • Constructor Details

    • HistoricalDatabaseTable

      public HistoricalDatabaseTable()
    • HistoricalDatabaseTable

      public HistoricalDatabaseTable(String name, String qualifier)
    • HistoricalDatabaseTable

      public HistoricalDatabaseTable(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.
  • Method Details