public class GeneratedValueGeneration extends Object implements AnnotationValueGeneration<Generated>
AnnotationValueGeneration
which marks a property as generated in the database.Constructor and Description |
---|
GeneratedValueGeneration() |
GeneratedValueGeneration(GenerationTiming timing) |
Modifier and Type | Method and Description |
---|---|
String |
getDatabaseGeneratedReferencedColumnValue()
For values which are generated in the database (
ValueGeneration.getValueGenerator() == null ), if the
column will be referenced in the SQL (ValueGeneration.referenceColumnInSql() == true ), what value should be
used in the SQL as the column value. |
GenerationTiming |
getGenerationTiming()
When is this value generated : NEVER, INSERT, ALWAYS (INSERT+UPDATE)
|
ValueGenerator<?> |
getValueGenerator()
Obtain the in-VM value generator.
|
void |
initialize(Generated annotation,
Class<?> propertyType)
Initializes this generation strategy for the given annotation instance.
|
boolean |
referenceColumnInSql()
For values which are generated in the database (
ValueGeneration.getValueGenerator() == null ), should the
column be referenced in the INSERT / UPDATE SQL?
This will be false most often to have a DDL-defined DEFAULT value be applied on INSERT |
public GeneratedValueGeneration()
public GeneratedValueGeneration(GenerationTiming timing)
public void initialize(Generated annotation, Class<?> propertyType)
AnnotationValueGeneration
initialize
in interface AnnotationValueGeneration<Generated>
annotation
- an instance of the strategy's annotation type. Typically implementations will retrieve the
annotation's attribute values and store them in fields.propertyType
- the type of the property annotated with the generator annotation. Implementations may use
the type to determine the right ValueGenerator
to be applied.public GenerationTiming getGenerationTiming()
ValueGeneration
getGenerationTiming
in interface ValueGeneration
public ValueGenerator<?> getValueGenerator()
ValueGeneration
null
. In fact for values that are generated "in the database" via execution of the
INSERT/UPDATE statement, the expectation is that null
be returned heregetValueGenerator
in interface ValueGeneration
public boolean referenceColumnInSql()
ValueGeneration
ValueGeneration.getValueGenerator()
== null
), should the
column be referenced in the INSERT / UPDATE SQL?
This will be false most often to have a DDL-defined DEFAULT value be applied on INSERTreferenceColumnInSql
in interface ValueGeneration
true
indicates the column should be included in the SQL.public String getDatabaseGeneratedReferencedColumnValue()
ValueGeneration
ValueGeneration.getValueGenerator()
== null
), if the
column will be referenced in the SQL (ValueGeneration.referenceColumnInSql()
== true
), what value should be
used in the SQL as the column value.
Generally this will be a function call or a marker (DEFAULTS).
NOTE : for in-VM generation, this will not be called and the column value will implicitly be a JDBC parameter ('?')getDatabaseGeneratedReferencedColumnValue
in interface ValueGeneration
Copyright © 2017 JBoss by Red Hat. All rights reserved.