Package org.hibernate.id
Class CompositeNestedGeneratedValueGenerator
java.lang.Object
org.hibernate.id.CompositeNestedGeneratedValueGenerator
- All Implemented Interfaces:
Serializable,IdentifierGenerator,IdentifierGeneratorAggregator
public class CompositeNestedGeneratedValueGenerator
extends Object
implements IdentifierGenerator, Serializable, IdentifierGeneratorAggregator
For composite identifiers, defines a number of "nested" generations that
need to happen to "fill" the identifier property(s).
This generator is used implicitly for all composite identifier scenarios if an
explicit generator is not in place. So it make sense to discuss the various
potential scenarios:
-
"embedded" composite identifier - this is possible only in HBM mappings
as
<composite-id/>(notice the lack of both a name and class attribute declarations). The term"embedded"here refers to the Hibernate usage which is actually the exact opposite of the JPA meaning of "embedded". Essentially this means that the entity class itself holds the named composite pk properties. This is very similar to the JPA@IdClassusage, though without a separate pk-class for loading. -
pk-class as entity attribute - this is possible in both annotations (
@EmbeddedId) and HBM mappings (<composite-id name="idAttributeName" class="PkClassName"/>) -
"embedded" composite identifier with a pk-class - this is the JPA
@IdClassuse case and is only possible in annotations
Component.- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic interfaceContract for declaring how to locate the context for sub-value injection.static interfaceContract for performing the actual sub-value generation, usually injecting it into the determinedcontext -
Field Summary
Fields inherited from interface org.hibernate.id.IdentifierGenerator
ENTITY_NAME -
Constructor Summary
ConstructorsConstructorDescriptionCompositeNestedGeneratedValueGenerator(CompositeNestedGeneratedValueGenerator.GenerationContextLocator generationContextLocator) -
Method Summary
Modifier and TypeMethodDescriptionvoidgenerate(SessionImplementor session, Object object) Generate a new identifier.voidregisterPersistentGenerators(Map generatorMap) Register any sub generators which implementPersistentIdentifierGeneratorby theirgeneratorKey.
-
Constructor Details
-
CompositeNestedGeneratedValueGenerator
public CompositeNestedGeneratedValueGenerator(CompositeNestedGeneratedValueGenerator.GenerationContextLocator generationContextLocator)
-
-
Method Details
-
addGeneratedValuePlan
-
generate
Description copied from interface:IdentifierGeneratorGenerate a new identifier.- Specified by:
generatein interfaceIdentifierGenerator- Parameters:
session-object- the entity or toplevel collection for which the id is being generated- Returns:
- a new identifier
- Throws:
HibernateException
-
registerPersistentGenerators
Register any sub generators which implementPersistentIdentifierGeneratorby theirgeneratorKey.- Specified by:
registerPersistentGeneratorsin interfaceIdentifierGeneratorAggregator- Parameters:
generatorMap- The map of generators.
-