hibernate/hibernate-orm · error · AnnotationException
@SQLDeleteAll does not apply to entities: ${entityName}
Error message
@SQLDeleteAll does not apply to entities: ${entityName} What it means
Error "@SQLDeleteAll does not apply to entities: ${entityName}" thrown in hibernate/hibernate-orm.
Source
Thrown at hibernate-core/src/main/java/org/hibernate/boot/model/internal/EntityBinder.java:1549
persistentClass.setUpdateExpectation( getDefaultSupplier( expectationClass ) );
}
}
var sqlDelete = resolveCustomSqlAnnotation( annotatedClass, SQLDelete.class, primaryTableName );
if ( sqlDelete == null ) {
sqlDelete = resolveCustomSqlAnnotation( annotatedClass, SQLDelete.class, "" );
}
if ( sqlDelete != null ) {
persistentClass.setCustomSQLDelete( sqlDelete.sql().trim(), sqlDelete.callable() );
final var expectationClass = sqlDelete.verify();
if ( expectationClass != Expectation.class ) {
persistentClass.setDeleteExpectation( getDefaultSupplier( expectationClass ) );
}
}
final var sqlDeleteAll = resolveCustomSqlAnnotation( annotatedClass, SQLDeleteAll.class, "" );
if ( sqlDeleteAll != null ) {
throw new AnnotationException("@SQLDeleteAll does not apply to entities: "
+ persistentClass.getEntityName());
}
final var sqlSelect = getOverridableAnnotation( annotatedClass, SQLSelect.class, context );
if ( sqlSelect != null ) {
final String loaderName = persistentClass.getEntityName() + "$SQLSelect";
persistentClass.setLoaderName( loaderName );
bindNativeQuery( loaderName, sqlSelect, annotatedClass, context );
}
final var hqlSelect = annotatedClass.getAnnotationUsage( HQLSelect.class, modelsContext() );
if ( hqlSelect != null ) {
final String loaderName = persistentClass.getEntityName() + "$HQLSelect";
persistentClass.setLoaderName( loaderName );
bindQuery( loaderName, hqlSelect, context );
}
}
View on GitHub (pinned to fad1729dce)
Solutions
- Remove @SQLDeleteAll from the entity; it applies only to collections.
When it happens
Trigger: @SQLDeleteAll is placed on an entity, where it does not apply.
Common situations: @SQLDeleteAll used on an @Entity class; it is only valid for collections.
AI-assisted analysis of hibernate/hibernate-orm@fad1729dce (2026-08-22).
Data as JSON: /api/errors/57e8dff7a08b69b5.
Report an issue: GitHub.