hibernate/hibernate-orm · error · IllegalArgumentException
Abstract class cannot be instantiated: " + clazz.getName()
Error message
Abstract class cannot be instantiated: " + clazz.getName()
What it means
Error "Abstract class cannot be instantiated: " + clazz.getName()" thrown in hibernate/hibernate-orm.
Source
Thrown at hibernate-core/src/main/java/org/hibernate/internal/util/ReflectHelper.java:294
if ( isAbstractClass( clazz ) ) {
return null;
}
try {
final var constructor = clazz.getDeclaredConstructor( NO_PARAM_SIGNATURE );
ensureAccessibility( constructor );
return constructor;
}
catch ( NoSuchMethodException nme ) {
throw new PropertyNotFoundException(
"Object class [" + clazz.getName() + "] must declare a default (no-argument) constructor"
);
}
}
public static <T> Supplier<T> getDefaultSupplier(Class<T> clazz) {
if ( isAbstractClass( clazz ) ) {
throw new IllegalArgumentException( "Abstract class cannot be instantiated: " + clazz.getName() );
}
try {
final var constructor = clazz.getDeclaredConstructor( NO_PARAM_SIGNATURE );
ensureAccessibility( constructor );
return () -> {
try {
return constructor.newInstance();
}
catch ( InstantiationException|IllegalAccessException|InvocationTargetException e ) {
throw new org.hibernate.InstantiationException( "Constructor threw exception", clazz, e );
}
};
}
catch ( NoSuchMethodException nme ) {
return () -> {
try {
return clazz.newInstance();View on GitHub (pinned to fad1729dce)
Solutions
- Instantiate a concrete subclass instead of the abstract class; fix mappings that reference the abstract type directly.
When it happens
Trigger: Thrown at hibernate-core/src/main/java/org/hibernate/internal/util/ReflectHelper.java:294 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of hibernate/hibernate-orm@fad1729dce (2026-08-22).
Data as JSON: /api/errors/7516ab516069dc20.
Report an issue: GitHub.