Package org.hibernate.annotations
Annotation Interface GenericGenerator
@Target({PACKAGE,TYPE,METHOD,FIELD})
@Retention(RUNTIME)
@Repeatable(GenericGenerators.class)
@Deprecated(since="6.5")
public @interface GenericGenerator
Deprecated.
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-defined generation types.
A named generator may be associated with an entity class by:
- defining a named generator using this annotation, specifying an
implementation of
IdentifierGenerator
usingtype()
, then - annotating the identifier property of the entity with the JPA-defined
@GeneratedValue
annotation, and - using
generator
to specify thename()
of the generator defined using this annotation.
If neither type()
not strategy()
is specified, Hibernate asks
the dialect to decide an appropriate strategy. This is equivalent to using
AUTO
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 Elements -
Optional Element Summary
Optional ElementsModifier and TypeOptional ElementDescriptionDeprecated.Parameters to be passed toIdentifierGenerator.configure(org.hibernate.type.Type, java.util.Properties, org.hibernate.service.ServiceRegistry)
when the identifier generator is instantiated.Deprecated.usetype()
for typesafetyDeprecated.The type of identifier generator, a class implementingGenerator
or, more commonly,IdentifierGenerator
.
-
Element Details
-
-
type
Deprecated.The type of identifier generator, a class implementingGenerator
or, more commonly,IdentifierGenerator
.- Since:
- 6.2
- Default:
- org.hibernate.generator.Generator.class
-
strategy
Deprecated.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.Parameters to be passed toIdentifierGenerator.configure(org.hibernate.type.Type, java.util.Properties, org.hibernate.service.ServiceRegistry)
when the identifier generator is instantiated.- Default:
- {}
-
IdGeneratorType
.