{"record":{"id":"7516ab516069dc20","repo":"hibernate/hibernate-orm","slug":"abstract-class-cannot-be-instantiated-clazz-g","errorCode":null,"errorMessage":"Abstract class cannot be instantiated: \" + clazz.getName()","messagePattern":"Abstract class cannot be instantiated: \" \\+ clazz\\.getName\\(\\)","errorType":"exception","errorClass":"IllegalArgumentException","httpStatus":null,"severity":"error","filePath":"hibernate-core/src/main/java/org/hibernate/internal/util/ReflectHelper.java","lineNumber":294,"sourceCode":"\t\tif ( isAbstractClass( clazz ) ) {\n\t\t\treturn null;\n\t\t}\n\n\t\ttry {\n\t\t\tfinal var constructor = clazz.getDeclaredConstructor( NO_PARAM_SIGNATURE );\n\t\t\tensureAccessibility( constructor );\n\t\t\treturn constructor;\n\t\t}\n\t\tcatch ( NoSuchMethodException nme ) {\n\t\t\tthrow new PropertyNotFoundException(\n\t\t\t\t\t\"Object class [\" + clazz.getName() + \"] must declare a default (no-argument) constructor\"\n\t\t\t);\n\t\t}\n\t}\n\n\tpublic static <T> Supplier<T> getDefaultSupplier(Class<T> clazz) {\n\t\tif ( isAbstractClass( clazz ) ) {\n\t\t\tthrow new IllegalArgumentException( \"Abstract class cannot be instantiated: \" + clazz.getName() );\n\t\t}\n\n\t\ttry {\n\t\t\tfinal var constructor = clazz.getDeclaredConstructor( NO_PARAM_SIGNATURE );\n\t\t\tensureAccessibility( constructor );\n\t\t\treturn () -> {\n\t\t\t\ttry {\n\t\t\t\t\treturn constructor.newInstance();\n\t\t\t\t}\n\t\t\t\tcatch ( InstantiationException|IllegalAccessException|InvocationTargetException e ) {\n\t\t\t\t\tthrow new org.hibernate.InstantiationException( \"Constructor threw exception\", clazz, e );\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t\tcatch ( NoSuchMethodException nme ) {\n\t\t\treturn () -> {\n\t\t\t\ttry {\n\t\t\t\t\treturn clazz.newInstance();","sourceCodeStart":276,"sourceCodeEnd":312,"githubUrl":"https://github.com/hibernate/hibernate-orm/blob/fad1729dce015f908198d57a8d80274a30f905a5/hibernate-core/src/main/java/org/hibernate/internal/util/ReflectHelper.java#L276-L312","documentation":"Error \"Abstract class cannot be instantiated: \" + clazz.getName()\" thrown in hibernate/hibernate-orm.","triggerScenarios":"Thrown at hibernate-core/src/main/java/org/hibernate/internal/util/ReflectHelper.java:294 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Instantiate a concrete subclass instead of the abstract class; fix mappings that reference the abstract type directly."],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"fad1729dce015f908198d57a8d80274a30f905a5","analyzedAt":"2026-08-22T04:13:57.527Z","schemaVersion":2},"datasetVersion":"2026-08-22T09:17:25.309Z"}