HHH-11495 Only cache values if the class is mapped somehow
This commit is contained in:
parent
7067b191b7
commit
6c5e71fc40
|
@ -80,6 +80,7 @@ public class MetamodelImpl implements MetamodelImplementor, Serializable {
|
||||||
private static final EntityManagerMessageLogger log = HEMLogging.messageLogger( MetamodelImpl.class );
|
private static final EntityManagerMessageLogger log = HEMLogging.messageLogger( MetamodelImpl.class );
|
||||||
private static final Object ENTITY_NAME_RESOLVER_MAP_VALUE = new Object();
|
private static final Object ENTITY_NAME_RESOLVER_MAP_VALUE = new Object();
|
||||||
private static final String INVALID_IMPORT = "";
|
private static final String INVALID_IMPORT = "";
|
||||||
|
private static final String[] EMPTY_IMPLEMENTORS = new String[0];
|
||||||
|
|
||||||
private final SessionFactoryImplementor sessionFactory;
|
private final SessionFactoryImplementor sessionFactory;
|
||||||
|
|
||||||
|
@ -635,9 +636,14 @@ public class MetamodelImpl implements MetamodelImplementor, Serializable {
|
||||||
try {
|
try {
|
||||||
final Class<?> clazz = getSessionFactory().getServiceRegistry().getService( ClassLoaderService.class ).classForName( className );
|
final Class<?> clazz = getSessionFactory().getServiceRegistry().getService( ClassLoaderService.class ).classForName( className );
|
||||||
implementors = doGetImplementors( clazz );
|
implementors = doGetImplementors( clazz );
|
||||||
|
if ( implementors.length > 0 ) {
|
||||||
implementorsCache.putIfAbsent( className, implementors );
|
implementorsCache.putIfAbsent( className, implementors );
|
||||||
return Arrays.copyOf( implementors, implementors.length );
|
return Arrays.copyOf( implementors, implementors.length );
|
||||||
}
|
}
|
||||||
|
else {
|
||||||
|
return EMPTY_IMPLEMENTORS;
|
||||||
|
}
|
||||||
|
}
|
||||||
catch (ClassLoadingException e) {
|
catch (ClassLoadingException e) {
|
||||||
return new String[]{ className }; // we don't cache anything for dynamic classes
|
return new String[]{ className }; // we don't cache anything for dynamic classes
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue