Skip to content

Commit 005b599

Browse files
committed
HHH-18894 Create new EnumJavaType if class name represents enum that is not currently known
1 parent 2807cf6 commit 005b599

File tree

1 file changed

+16
-1
lines changed

1 file changed

+16
-1
lines changed

hibernate-core/src/main/java/org/hibernate/metamodel/model/domain/internal/JpaMetamodelImpl.java

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -319,7 +319,22 @@ public Set<EmbeddableType<?>> getEmbeddables() {
319319

320320
@Override
321321
public EnumJavaType<?> getEnumType(String className) {
322-
return enumJavaTypes.get( className );
322+
if ( enumJavaTypes.containsKey( className ) ) {
323+
return enumJavaTypes.get( className );
324+
}
325+
final ClassLoaderService classLoaderService = serviceRegistry.getService( ClassLoaderService.class );
326+
try {
327+
final Class<Object> clazz = classLoaderService.classForName( className );
328+
if ( clazz == null || !clazz.isEnum() ) {
329+
return null;
330+
}
331+
final EnumJavaType enumType = new EnumJavaType( clazz );
332+
enumJavaTypes.put( className, enumType );
333+
return enumType;
334+
}
335+
catch (ClassLoadingException e) {
336+
throw new RuntimeException( e );
337+
}
323338
}
324339

325340
@Override

0 commit comments

Comments
 (0)