hibernate/hibernate-orm · error · AnnotationException
Property '${property}' has too many generator annotations: $
Error message
Property '${property}' has too many generator annotations: ${generatorAnnotations} What it means
Error "Property '${property}' has too many generator annotations: ${generatorAnnotations}" thrown in hibernate/hibernate-orm.
Source
Thrown at hibernate-core/src/main/java/org/hibernate/boot/model/internal/GeneratorBinder.java:887
else if ( idMemberDetails.hasDirectAnnotationUsage( GeneratedValue.class ) ) {
createIdGenerator( idMemberDetails, idValue, propertyHolder.getPersistentClass(), buildingContext );
}
}
/**
* Returns the value generation strategy for the given property, if any, by
* considering {@linkplain ValueGenerationType generator type annotations}.
*/
static GeneratorCreator createValueGeneratorFromAnnotations(
PropertyHolder holder, String propertyName,
Value value, MemberDetails property, MetadataBuildingContext buildingContext) {
final var generatorAnnotations =
property.getMetaAnnotated( ValueGenerationType.class,
buildingContext.getBootstrapContext().getModelsContext() );
return switch ( generatorAnnotations.size() ) {
case 0 -> null;
case 1 -> generatorCreator( property, value, generatorAnnotations.get(0), beanContainer( buildingContext ) );
default -> throw new AnnotationException( "Property '" + qualify( holder.getPath(), propertyName )
+ "' has too many generator annotations: " + generatorAnnotations );
};
}
public static void applyIfNotEmpty(String name, String value, BiConsumer<String,String> consumer) {
if ( isNotEmpty( value ) ) {
consumer.accept( name, value );
}
}
private static Setter injector(Property property, Class<?> attributeDeclarer) {
return property.getPropertyAccessStrategy( attributeDeclarer )
.buildPropertyAccess( attributeDeclarer, property.getName(), true )
.getSetter();
}
/**
* Return the class that declares the composite pk attributes,View on GitHub (pinned to fad1729dce)
Solutions
- Keep only one generator annotation on the property.
When it happens
Trigger: An identifier/value generator declaration is inconsistent with the referenced generator or the annotated element.
Common situations: @GeneratedValue pointing at a generator of the wrong kind (SEQUENCE vs TABLE), a missing named generator, too many generator annotations, or an unsupported generation strategy for @CollectionId.
AI-assisted analysis of hibernate/hibernate-orm@fad1729dce (2026-08-22).
Data as JSON: /api/errors/adfe6f50ef94a499.
Report an issue: GitHub.