Package org.hibernate.annotations
Annotation Interface GenericGenerator
@Target({PACKAGE,TYPE,METHOD,FIELD})@Retention(RUNTIME)@Repeatable(GenericGenerators.class)@Deprecated(since="6.5",forRemoval=true)public @interfaceGenericGenerator
Deprecated, for removal: This API element is subject to removal in a future version.
Use the new approach based on
IdGeneratorType.Defines a named identifier generator, usually an instance of the interface
IdentifierGenerator. This allows the use of custom identifier generation strategies beyond those provided by the four basic JPA-definedgeneration types.A named generator may be associated with an entity class by:
- defining a named generator using this annotation, specifying an implementation of
IdentifierGeneratorusingtype(), then - annotating the identifier property of the entity with the JPA-defined
@GeneratedValueannotation, and - using
generatorto specify thename()of the generator defined using this annotation.
If neithertype() notstrategy() is specified, Hibernate asksthe dialect to decide an appropriate strategy. This is equivalent to usingAUTO in JPA.
For example, if we define a generator using:
@GenericGenerator(name = "custom-generator", type = org.hibernate.eg.CustomStringGenerator.class) }
Then we may make use of it by annotating an identifier field as follows:
@Id @GeneratedValue(generator = "custom-generator") private String id;
The disadvantage of this approach is the use of stringly-typed names. An alternative, completely typesafe, way to declare a generator and associate it with an entity is provided by the@IdGeneratorType meta-annotation.
- See Also:
Required Element Summary
Required ElementsOptional Element Summary
Optional ElementsModifier and TypeOptional ElementDescriptionDeprecated, for removal: This API element is subject to removal in a future version.Parameters to be passed toIdentifierGenerator.configure(org.hibernate.type.Type, java.util.Properties, org.hibernate.service.ServiceRegistry)when the identifier generator is instantiated.Deprecated, for removal: This API element is subject to removal in a future version.usetype()for typesafetyDeprecated, for removal: This API element is subject to removal in a future version.The type of identifier generator, a class implementingGeneratoror, more commonly,IdentifierGenerator.
Element Details
type
Deprecated, for removal: This API element is subject to removal in a future version.The type of identifier generator, a class implementingGeneratoror, more commonly,IdentifierGenerator.- Since:
- 6.2
- Default:
- org.hibernate.generator.Generator.class
strategy
Deprecated, for removal: This API element is subject to removal in a future version.usetype()for typesafetyThe type of identifier generator, the name of either:- a built-in Hibernate id generator, or
- a custom class implementing
Generator, or, more commonly,IdentifierGenerator.
- Default:
- "native"
parameters
Parameter[] parametersDeprecated, for removal: This API element is subject to removal in a future version.Parameters to be passed toIdentifierGenerator.configure(org.hibernate.type.Type, java.util.Properties, org.hibernate.service.ServiceRegistry)when the identifier generator is instantiated.- Default:
- {}