Class OracleTemporalTableSupport
java.lang.Object
org.hibernate.dialect.temporal.DefaultTemporalTableSupport
org.hibernate.dialect.temporal.OracleTemporalTableSupport
- All Implemented Interfaces:
TemporalTableSupport
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidaddTemporalTableAuxiliaryObjects(TemporalTableStrategy strategy, Table table, Database database, boolean partitioned, String currentPartitionName, String historyPartitionName) Register any auxiliary database objects required for the given temporary table and strategy.booleanReturnfalsebecause we useperiod for system_timeto implement the constraint on Oracle.getAsOfOperator(TemporalTableStrategy strategy) The operator used to specify a temporal instant for querying historical data.getExtraTemporalTableDeclarations(TemporalTableStrategy strategy, String rowStartColumn, String rowEndColumn, boolean partitioned) Any extra declarations required as part of thecreate tablestatement for a temporal table.getTemporalTableOptions(TemporalTableStrategy strategy, String rowEndColumnName, boolean partitioned, String currentPartition, String historyPartition) Table options to use for temporal tables, used to specify system versioning or table partitioning.booleanDoes this dialect natively support SQL 2011-style temporal tables?booleanDo we support partitioning temporal tables in this dialect?booleansuppressesTemporalTablePrimaryKeys(boolean partitioned) Do we need to suppress creation of the primary key constraint on a temporal table?booleanuseAsOfOperator(TemporalTableStrategy strategy) Should be use thefor system_time as ofoperator when querying temporal tables? We usually only use it for querying native temporal tables at a historical instant, but in Oracle we use it all the time.booleanuseTemporalRestriction(LoadQueryInfluencers influencers) Should we use temporal restrictions on therow startandrow endcolumns when querying temporal tables? We usually use them unless we are using native temporal tables, but on Oracle we never use them.Methods inherited from class DefaultTemporalTableSupport
getDefaultTemporalTableStrategy, getTemporalColumnPrecision, getTemporalColumnType, getTemporalExclusionColumnOption
-
Constructor Details
-
OracleTemporalTableSupport
-
-
Method Details
-
createTemporalTableCheckConstraint
Returnfalsebecause we useperiod for system_timeto implement the constraint on Oracle.- Specified by:
createTemporalTableCheckConstraintin interfaceTemporalTableSupport- Overrides:
createTemporalTableCheckConstraintin classDefaultTemporalTableSupport
-
getExtraTemporalTableDeclarations
public String getExtraTemporalTableDeclarations(TemporalTableStrategy strategy, String rowStartColumn, String rowEndColumn, boolean partitioned) Description copied from interface:TemporalTableSupportAny extra declarations required as part of thecreate tablestatement for a temporal table. These declarations, unlike the options come inside the parentheses, along with the column and constraint definitions. Examples include theperiod for system_timeclause, the Db2transaction start idcolumn, the MySQL partitioning column, and so on.- Specified by:
getExtraTemporalTableDeclarationsin interfaceTemporalTableSupport- Overrides:
getExtraTemporalTableDeclarationsin classDefaultTemporalTableSupport- Parameters:
strategy- The temporal table strategypartitioned- Is partitioning requested
-
getAsOfOperator
Description copied from interface:TemporalTableSupportThe operator used to specify a temporal instant for querying historical data. Usuallyfor system_time as of. This is usually used together with native temporal tables, but in Oracle we use it all the time.- Specified by:
getAsOfOperatorin interfaceTemporalTableSupport- Overrides:
getAsOfOperatorin classDefaultTemporalTableSupport
-
useAsOfOperator
Description copied from interface:TemporalTableSupportShould be use thefor system_time as ofoperator when querying temporal tables? We usually only use it for querying native temporal tables at a historical instant, but in Oracle we use it all the time.- Specified by:
useAsOfOperatorin interfaceTemporalTableSupport- Overrides:
useAsOfOperatorin classDefaultTemporalTableSupport- Parameters:
strategy- The strategy
-
useTemporalRestriction
Description copied from interface:TemporalTableSupportShould we use temporal restrictions on therow startandrow endcolumns when querying temporal tables? We usually use them unless we are using native temporal tables, but on Oracle we never use them.- Specified by:
useTemporalRestrictionin interfaceTemporalTableSupport- Overrides:
useTemporalRestrictionin classDefaultTemporalTableSupport- Parameters:
influencers- TheLoadQueryInfluencers
-
supportsTemporalTablePartitioning
public boolean supportsTemporalTablePartitioning()Description copied from interface:TemporalTableSupportDo we support partitioning temporal tables in this dialect?- Specified by:
supportsTemporalTablePartitioningin interfaceTemporalTableSupport- Overrides:
supportsTemporalTablePartitioningin classDefaultTemporalTableSupport- See Also:
-
suppressesTemporalTablePrimaryKeys
public boolean suppressesTemporalTablePrimaryKeys(boolean partitioned) Description copied from interface:TemporalTableSupportDo we need to suppress creation of the primary key constraint on a temporal table?- Specified by:
suppressesTemporalTablePrimaryKeysin interfaceTemporalTableSupport- Overrides:
suppressesTemporalTablePrimaryKeysin classDefaultTemporalTableSupport- Parameters:
partitioned- Is partitioning requested
-
getTemporalTableOptions
public String getTemporalTableOptions(TemporalTableStrategy strategy, String rowEndColumnName, boolean partitioned, String currentPartition, String historyPartition) Description copied from interface:TemporalTableSupportTable options to use for temporal tables, used to specify system versioning or table partitioning.- Specified by:
getTemporalTableOptionsin interfaceTemporalTableSupport- Overrides:
getTemporalTableOptionsin classDefaultTemporalTableSupport- Parameters:
strategy- The temporal table strategyrowEndColumnName- The name of therow endcolumn specified viaTemporal.rowEnd()partitioned- Is partitioning requestedcurrentPartition- The current partition name, if specifiedhistoryPartition- The history partition name, if specified- Returns:
- The options, or
nullif there are no options
-
supportsNativeTemporalTables
public boolean supportsNativeTemporalTables()Description copied from interface:TemporalTableSupportDoes this dialect natively support SQL 2011-style temporal tables?- Specified by:
supportsNativeTemporalTablesin interfaceTemporalTableSupport- Overrides:
supportsNativeTemporalTablesin classDefaultTemporalTableSupport- See Also:
-
addTemporalTableAuxiliaryObjects
public void addTemporalTableAuxiliaryObjects(TemporalTableStrategy strategy, Table table, Database database, boolean partitioned, String currentPartitionName, String historyPartitionName) Description copied from interface:TemporalTableSupportRegister any auxiliary database objects required for the given temporary table and strategy. Used to create history tables or table partitions.- Specified by:
addTemporalTableAuxiliaryObjectsin interfaceTemporalTableSupport- Overrides:
addTemporalTableAuxiliaryObjectsin classDefaultTemporalTableSupport- Parameters:
strategy- The temporal table strategytable- A temporal tabledatabase- The database to register withpartitioned- Is partitioning requestedcurrentPartitionName- The current partition name, if specifiedhistoryPartitionName- The history partition name, if specified
-