Interface ValueGeneration

All Superinterfaces:
BeforeExecutionGenerator, Generator, OnExecutionGenerator, Serializable
All Known Subinterfaces:
AnnotationValueGeneration<A>
All Known Implementing Classes:
CreationTimestampGeneration, UpdateTimestampGeneration

@Deprecated(since="6.2", forRemoval=true) public interface ValueGeneration extends BeforeExecutionGenerator, OnExecutionGenerator
Deprecated, for removal: This API element is subject to removal in a future version.
Replaced by Generator
A value generator that can adapt to both Java value generation and database value generation.

This is an older API that predates Generator. It's often cleaner to implement either BeforeExecutionGenerator or OnExecutionGenerator directly.

See Also:
  • Method Details

    • getGenerationTiming

      GenerationTiming getGenerationTiming()
      Deprecated, for removal: This API element is subject to removal in a future version.
      Returns:
      The GenerationTiming specifying when the value is generated.
    • getEventTypes

      default EnumSet<EventType> getEventTypes()
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from interface: Generator
      The event types for which this generator should be called to produce a new value.

      Identifier generators must return EventTypeSets.INSERT_ONLY.

      Specified by:
      getEventTypes in interface Generator
      Returns:
      a set of EventTypes.
    • getValueGenerator

      ValueGenerator<?> getValueGenerator()
      Deprecated, for removal: This API element is subject to removal in a future version.
      Obtain the Java value generator, if the value is generated in Java, or return null if the value is generated by the database.
      Returns:
      The value generator
    • generate

      default Object generate(SharedSessionContractImplementor session, Object owner, Object currentValue, EventType eventType)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from interface: BeforeExecutionGenerator
      Generate a value.
      Specified by:
      generate in interface BeforeExecutionGenerator
      Parameters:
      session - The session from which the request originates.
      owner - The instance of the object owning the attribute for which we are generating a value.
      currentValue - The current value assigned to the property, or null
      eventType - The type of event that has triggered generation of a new value
      Returns:
      The generated value
    • referenceColumnInSql

      boolean referenceColumnInSql()
      Deprecated, for removal: This API element is subject to removal in a future version.
      Determines if the column whose value is generated is included in the column list of the SQL insert or update statement, in the case where the value is generated by the database. For example, this method should return:

      If the value is generated in Java, this method is not called, and so for backward compatibility with Hibernate 5 it is permitted to return any value. On the other hand, when a property value is generated in Java, the column certainly must be included in the column list, and so it's most correct for this method to return true!

      Returns:
      true if the column is included in the column list of the SQL statement.
    • getDatabaseGeneratedReferencedColumnValue

      String getDatabaseGeneratedReferencedColumnValue()
      Deprecated, for removal: This API element is subject to removal in a future version.
      A SQL expression indicating how to calculate the generated value when the property value is generated in the database and the mapped column is included in the SQL statement. The SQL expression might be:
      • a function call like current_timestamp or nextval('mysequence'), or
      • a syntactic marker like default.

      When the property value is generated in Java, this method is not called, and its value is implicitly the string "?", that is, a JDBC parameter to which the generated value is bound.

      Returns:
      The column value to be used in the generated SQL statement.
    • getDatabaseGeneratedReferencedColumnValue

      default String getDatabaseGeneratedReferencedColumnValue(Dialect dialect)
      Deprecated, for removal: This API element is subject to removal in a future version.
      A SQL expression indicating how to calculate the generated value when the property value is generated in the database and the mapped column is included in the SQL statement. The SQL expression might be:
      • a function call like current_timestamp or nextval('mysequence'), or
      • a syntactic marker like default.

      When the property value is generated in Java, this method is not called, and its value is implicitly the string "?", that is, a JDBC parameter to which the generated value is bound.

      Parameters:
      dialect - The SQL dialect, allowing generation of an expression in dialect-specific SQL.
      Returns:
      The column value to be used in the generated SQL statement.
    • getReferencedColumnValues

      default String[] getReferencedColumnValues(Dialect dialect)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from interface: OnExecutionGenerator
      A SQL expression indicating how to calculate the generated values when the mapped columns are included in the SQL statement. The SQL expressions might be:
      • function calls like current_timestamp or nextval('mysequence'), or
      • syntactic markers like default.
      Specified by:
      getReferencedColumnValues in interface OnExecutionGenerator
      Parameters:
      dialect - The SQL dialect, allowing generation of an expression in dialect-specific SQL.
      Returns:
      The column value to be used in the generated SQL statement.
    • referenceColumnsInSql

      default boolean referenceColumnsInSql(Dialect dialect)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from interface: OnExecutionGenerator
      Determines if the columns whose values are generated are included in the column list of the SQL insert or update statement. For example, this method should return:
      Specified by:
      referenceColumnsInSql in interface OnExecutionGenerator
      Returns:
      true if the column is included in the column list of the SQL statement.
    • generatedOnExecution

      default boolean generatedOnExecution()
      Deprecated, for removal: This API element is subject to removal in a future version.
      Determines if the property value is generated in Java, or by the database.

      This default implementation returns true if the Java value generator is null.

      Specified by:
      generatedOnExecution in interface BeforeExecutionGenerator
      Specified by:
      generatedOnExecution in interface Generator
      Specified by:
      generatedOnExecution in interface OnExecutionGenerator
      Returns:
      true if the value is generated by the database, or false if it is generated in Java using a ValueGenerator.
    • writePropertyValue

      default boolean writePropertyValue()
      Deprecated, for removal: This API element is subject to removal in a future version.
      Determines if the property value is written to JDBC as the argument of a JDBC ? parameter. This is the case when either:
      Specified by:
      writePropertyValue in interface OnExecutionGenerator
      See Also: