Skip to content

Commit eacbd78

Browse files
committed
split out SessionFactorySettings and kill off MappingMetamodelImpl.close()
Signed-off-by: Gavin King <[email protected]>
1 parent 4781c09 commit eacbd78

File tree

4 files changed

+158
-129
lines changed

4 files changed

+158
-129
lines changed

hibernate-core/src/main/java/org/hibernate/internal/SessionFactoryImpl.java

Lines changed: 22 additions & 123 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,6 @@
4141
import org.hibernate.StatelessSessionBuilder;
4242
import org.hibernate.UnknownFilterException;
4343
import org.hibernate.binder.internal.TenantIdBinder;
44-
import org.hibernate.boot.cfgxml.spi.CfgXmlAccessService;
4544
import org.hibernate.boot.model.relational.SqlStringGenerationContext;
4645
import org.hibernate.boot.model.relational.internal.SqlStringGenerationContextImpl;
4746
import org.hibernate.boot.registry.classloading.spi.ClassLoaderService;
@@ -52,15 +51,12 @@
5251
import org.hibernate.cache.cfg.spi.DomainDataRegionConfig;
5352
import org.hibernate.cache.spi.CacheImplementor;
5453
import org.hibernate.cache.spi.access.AccessType;
55-
import org.hibernate.cfg.AvailableSettings;
56-
import org.hibernate.cfg.PersistenceSettings;
5754
import org.hibernate.context.internal.JTASessionContext;
5855
import org.hibernate.context.internal.ManagedSessionContext;
5956
import org.hibernate.context.internal.ThreadLocalSessionContext;
6057
import org.hibernate.context.spi.CurrentSessionContext;
6158
import org.hibernate.context.spi.CurrentTenantIdentifierResolver;
6259
import org.hibernate.dialect.Dialect;
63-
import org.hibernate.engine.config.spi.ConfigurationService;
6460
import org.hibernate.engine.jdbc.connections.spi.JdbcConnectionAccess;
6561
import org.hibernate.engine.jdbc.spi.JdbcServices;
6662
import org.hibernate.engine.profile.FetchProfile;
@@ -103,9 +99,6 @@
10399
import org.hibernate.query.sql.spi.NativeQueryImplementor;
104100
import org.hibernate.query.sqm.NodeBuilder;
105101
import org.hibernate.query.sqm.function.SqmFunctionRegistry;
106-
import org.hibernate.query.sqm.mutation.internal.temptable.GlobalTemporaryTableStrategy;
107-
import org.hibernate.query.sqm.mutation.internal.temptable.LocalTemporaryTableStrategy;
108-
import org.hibernate.query.sqm.mutation.internal.temptable.PersistentTableStrategy;
109102
import org.hibernate.query.sqm.spi.NamedSqmQueryMemento;
110103
import org.hibernate.relational.SchemaManager;
111104
import org.hibernate.relational.internal.SchemaManagerImpl;
@@ -138,14 +131,12 @@
138131
import static java.util.Collections.emptySet;
139132
import static java.util.Collections.unmodifiableSet;
140133
import static org.hibernate.cfg.AvailableSettings.CURRENT_SESSION_CONTEXT_CLASS;
141-
import static org.hibernate.cfg.AvailableSettings.JAKARTA_VALIDATION_FACTORY;
142-
import static org.hibernate.cfg.AvailableSettings.JPA_VALIDATION_FACTORY;
143-
import static org.hibernate.cfg.PersistenceSettings.PERSISTENCE_UNIT_NAME;
144-
import static org.hibernate.cfg.PersistenceSettings.SESSION_FACTORY_JNDI_NAME;
145-
import static org.hibernate.engine.config.spi.StandardConverters.STRING;
146134
import static org.hibernate.internal.FetchProfileHelper.getFetchProfiles;
147-
import static org.hibernate.internal.log.DeprecationLogger.DEPRECATION_LOGGER;
148-
import static org.hibernate.internal.util.StringHelper.isNotEmpty;
135+
import static org.hibernate.internal.SessionFactorySettings.deprecationCheck;
136+
import static org.hibernate.internal.SessionFactorySettings.determineJndiName;
137+
import static org.hibernate.internal.SessionFactorySettings.getSessionFactoryName;
138+
import static org.hibernate.internal.SessionFactorySettings.getSettings;
139+
import static org.hibernate.internal.SessionFactorySettings.maskOutSensitiveInformation;
149140
import static org.hibernate.jpa.HibernateHints.HINT_TENANT_ID;
150141
import static org.hibernate.proxy.HibernateProxy.extractLazyInitializer;
151142
import static org.hibernate.resource.jdbc.spi.PhysicalConnectionHandlingMode.DELAYED_ACQUISITION_AND_RELEASE_AFTER_STATEMENT;
@@ -262,8 +253,8 @@ public SessionFactoryImpl(
262253
//noinspection unchecked
263254
tenantIdentifierJavaType = jdbcMapping.getJavaTypeDescriptor();
264255
}
265-
for (Map.Entry<String, FilterDefinition> filterEntry : filters.entrySet()) {
266-
if (filterEntry.getValue().isAutoEnabled()) {
256+
for ( Map.Entry<String, FilterDefinition> filterEntry : filters.entrySet() ) {
257+
if ( filterEntry.getValue().isAutoEnabled() ) {
267258
autoEnabledFilters.add( filterEntry.getValue() );
268259
}
269260
}
@@ -295,7 +286,8 @@ public SessionFactoryImpl(
295286
// create runtime metamodels (mapping and JPA)
296287
final RuntimeMetamodelsImpl runtimeMetamodelsImpl = new RuntimeMetamodelsImpl();
297288
runtimeMetamodels = runtimeMetamodelsImpl;
298-
final MappingMetamodelImpl mappingMetamodelImpl = new MappingMetamodelImpl( typeConfiguration, serviceRegistry );
289+
final MappingMetamodelImpl mappingMetamodelImpl =
290+
new MappingMetamodelImpl( typeConfiguration, serviceRegistry );
299291
runtimeMetamodelsImpl.setMappingMetamodel( mappingMetamodelImpl );
300292
fastSessionServices = new FastSessionServices( this );
301293
initializeMappingModel( mappingMetamodelImpl, bootstrapContext, bootMetamodel, options );
@@ -337,38 +329,16 @@ public SessionFactoryImpl(
337329
LOG.debug( "Instantiated SessionFactory" );
338330
}
339331

340-
private static void deprecationCheck(Map<String, Object> settings) {
341-
for ( String s:settings.keySet() ) {
342-
switch (s) {
343-
case "hibernate.hql.bulk_id_strategy.global_temporary.create_tables":
344-
DEPRECATION_LOGGER.deprecatedSetting( "hibernate.hql.bulk_id_strategy.global_temporary.create_tables", GlobalTemporaryTableStrategy.CREATE_ID_TABLES );
345-
case "hibernate.hql.bulk_id_strategy.global_temporary.drop_tables":
346-
DEPRECATION_LOGGER.deprecatedSetting( "hibernate.hql.bulk_id_strategy.global_temporary.drop_tables", GlobalTemporaryTableStrategy.DROP_ID_TABLES );
347-
case "hibernate.hql.bulk_id_strategy.persistent.create_tables":
348-
DEPRECATION_LOGGER.deprecatedSetting( "hibernate.hql.bulk_id_strategy.persistent.create_tables", PersistentTableStrategy.CREATE_ID_TABLES );
349-
case "hibernate.hql.bulk_id_strategy.persistent.drop_tables":
350-
DEPRECATION_LOGGER.deprecatedSetting( "hibernate.hql.bulk_id_strategy.persistent.drop_tables", PersistentTableStrategy.DROP_ID_TABLES );
351-
case "hibernate.hql.bulk_id_strategy.persistent.schema":
352-
DEPRECATION_LOGGER.deprecatedSetting( "hibernate.hql.bulk_id_strategy.persistent.schema", PersistentTableStrategy.SCHEMA );
353-
case "hibernate.hql.bulk_id_strategy.persistent.catalog":
354-
DEPRECATION_LOGGER.deprecatedSetting( "hibernate.hql.bulk_id_strategy.persistent.catalog", PersistentTableStrategy.CATALOG );
355-
case "hibernate.hql.bulk_id_strategy.local_temporary.drop_tables":
356-
DEPRECATION_LOGGER.deprecatedSetting( "hibernate.hql.bulk_id_strategy.local_temporary.drop_tables", LocalTemporaryTableStrategy.DROP_ID_TABLES );
357-
}
358-
}
359-
}
360-
361332
private void initializeMappingModel(
362333
MappingMetamodelImpl mappingMetamodelImpl,
363334
BootstrapContext bootstrapContext,
364335
MetadataImplementor bootMetamodel,
365336
SessionFactoryOptions options) {
366-
final TypeConfiguration typeConfiguration = mappingMetamodelImpl.getTypeConfiguration();
367337
mappingMetamodelImpl.finishInitialization( runtimeModelCreationContext(
368338
bootstrapContext,
369339
bootMetamodel,
370340
mappingMetamodelImpl,
371-
typeConfiguration,
341+
mappingMetamodelImpl.getTypeConfiguration(),
372342
options
373343
) );
374344
}
@@ -528,58 +498,6 @@ private void disintegrate(Exception startupException, IntegratorObserver integra
528498
}
529499

530500

531-
private static Map<String, Object> getSettings(SessionFactoryOptions options, SessionFactoryServiceRegistry serviceRegistry) {
532-
final Map<String, Object> settings = serviceRegistry.requireService( ConfigurationService.class ).getSettings();
533-
final Map<String,Object> result = new HashMap<>( settings );
534-
if ( !settings.containsKey( JPA_VALIDATION_FACTORY ) && !settings.containsKey( JAKARTA_VALIDATION_FACTORY ) ) {
535-
final Object reference = options.getValidatorFactoryReference();
536-
if ( reference != null ) {
537-
result.put( JPA_VALIDATION_FACTORY, reference );
538-
result.put( JAKARTA_VALIDATION_FACTORY, reference );
539-
}
540-
}
541-
return result;
542-
}
543-
544-
private static String getSessionFactoryName(SessionFactoryOptions options, SessionFactoryServiceRegistry serviceRegistry) {
545-
final String sessionFactoryName = options.getSessionFactoryName();
546-
if ( sessionFactoryName != null ) {
547-
return sessionFactoryName;
548-
}
549-
550-
final CfgXmlAccessService cfgXmlAccessService = serviceRegistry.requireService( CfgXmlAccessService.class );
551-
if ( cfgXmlAccessService.getAggregatedConfig() != null ) {
552-
final String nameFromAggregation = cfgXmlAccessService.getAggregatedConfig().getSessionFactoryName();
553-
if ( nameFromAggregation != null ) {
554-
return nameFromAggregation;
555-
}
556-
}
557-
558-
559-
final ConfigurationService configurationService = serviceRegistry.getService( ConfigurationService.class );
560-
assert configurationService != null;
561-
return configurationService.getSetting( PersistenceSettings.PERSISTENCE_UNIT_NAME, STRING );
562-
}
563-
564-
private String determineJndiName(
565-
String name,
566-
SessionFactoryOptions options,
567-
SessionFactoryServiceRegistry serviceRegistry) {
568-
final ConfigurationService cfgService = serviceRegistry.getService( ConfigurationService.class );
569-
assert cfgService != null;
570-
final String explicitJndiName = cfgService.getSetting( SESSION_FACTORY_JNDI_NAME, STRING );
571-
if ( isNotEmpty( explicitJndiName ) ) {
572-
return explicitJndiName;
573-
}
574-
575-
final String puName = cfgService.getSetting( PERSISTENCE_UNIT_NAME, STRING );
576-
// do not use name for JNDI if explicitly asked not to or if name comes from JPA persistence-unit name
577-
final boolean nameIsNotJndiName =
578-
options.isSessionFactoryNameAlsoJndiName() == Boolean.FALSE
579-
|| isNotEmpty( puName );
580-
return !nameIsNotJndiName ? name : null;
581-
}
582-
583501
private SessionBuilderImpl createDefaultSessionOpenOptionsIfPossible() {
584502
final CurrentTenantIdentifierResolver<Object> tenantIdResolver = getCurrentTenantIdentifierResolver();
585503
if ( tenantIdResolver == null ) {
@@ -888,7 +806,7 @@ public Reference getReference() {
888806
LOG.debug( "Returning a Reference to the SessionFactory" );
889807
return new Reference(
890808
SessionFactoryImpl.class.getName(),
891-
new StringRefAddr("uuid", getUuid()),
809+
new StringRefAddr( "uuid", getUuid() ),
892810
SessionFactoryRegistry.ObjectFactoryImpl.class.getName(),
893811
null
894812
);
@@ -954,20 +872,16 @@ public void close() throws HibernateException {
954872
runtimeMetamodels.getMappingMetamodel().forEachEntityDescriptor(
955873
entityPersister -> {
956874
if ( entityPersister.getSqmMultiTableMutationStrategy() != null ) {
957-
entityPersister.getSqmMultiTableMutationStrategy().release(
958-
this,
959-
jdbcConnectionAccess
960-
);
875+
entityPersister.getSqmMultiTableMutationStrategy()
876+
.release( this, jdbcConnectionAccess );
961877
}
962878
if ( entityPersister.getSqmMultiTableInsertStrategy() != null ) {
963-
entityPersister.getSqmMultiTableInsertStrategy().release(
964-
this,
965-
jdbcConnectionAccess
966-
);
879+
entityPersister.getSqmMultiTableInsertStrategy()
880+
.release( this, jdbcConnectionAccess );
967881
}
968882
}
969883
);
970-
( (MappingMetamodelImpl) runtimeMetamodels.getMappingMetamodel() ).close();
884+
// ( (MappingMetamodelImpl) runtimeMetamodels.getMappingMetamodel() ).close();
971885
}
972886

973887
if ( queryEngine != null ) {
@@ -1324,18 +1238,18 @@ public SessionBuilderImpl(SessionFactoryImpl sessionFactory) {
13241238

13251239
// set up default builder values...
13261240
final SessionFactoryOptions sessionFactoryOptions = sessionFactory.getSessionFactoryOptions();
1327-
this.statementInspector = sessionFactoryOptions.getStatementInspector();
1328-
this.connectionHandlingMode = sessionFactoryOptions.getPhysicalConnectionHandlingMode();
1329-
this.autoClose = sessionFactoryOptions.isAutoCloseSessionEnabled();
1330-
this.defaultBatchFetchSize = sessionFactoryOptions.getDefaultBatchFetchSize();
1331-
this.subselectFetchEnabled = sessionFactoryOptions.isSubselectFetchEnabled();
1241+
statementInspector = sessionFactoryOptions.getStatementInspector();
1242+
connectionHandlingMode = sessionFactoryOptions.getPhysicalConnectionHandlingMode();
1243+
autoClose = sessionFactoryOptions.isAutoCloseSessionEnabled();
1244+
defaultBatchFetchSize = sessionFactoryOptions.getDefaultBatchFetchSize();
1245+
subselectFetchEnabled = sessionFactoryOptions.isSubselectFetchEnabled();
13321246

13331247
final CurrentTenantIdentifierResolver<Object> currentTenantIdentifierResolver =
13341248
sessionFactory.getCurrentTenantIdentifierResolver();
13351249
if ( currentTenantIdentifierResolver != null ) {
13361250
tenantIdentifier = currentTenantIdentifierResolver.resolveCurrentTenantIdentifier();
13371251
}
1338-
this.jdbcTimeZone = sessionFactoryOptions.getJdbcTimeZone();
1252+
jdbcTimeZone = sessionFactoryOptions.getJdbcTimeZone();
13391253
}
13401254

13411255

@@ -1772,21 +1686,6 @@ static SessionFactoryImpl deserialize(ObjectInputStream ois) throws IOException
17721686
return (SessionFactoryImpl) locateSessionFactoryOnDeserialization( uuid, name );
17731687
}
17741688

1775-
private static void maskOutSensitiveInformation(Map<String, Object> props) {
1776-
maskOutIfSet( props, AvailableSettings.JPA_JDBC_USER );
1777-
maskOutIfSet( props, AvailableSettings.JPA_JDBC_PASSWORD );
1778-
maskOutIfSet( props, AvailableSettings.JAKARTA_JDBC_USER );
1779-
maskOutIfSet( props, AvailableSettings.JAKARTA_JDBC_PASSWORD );
1780-
maskOutIfSet( props, AvailableSettings.USER );
1781-
maskOutIfSet( props, AvailableSettings.PASS );
1782-
}
1783-
1784-
private static void maskOutIfSet(Map<String, Object> props, String setting) {
1785-
if ( props.containsKey( setting ) ) {
1786-
props.put( setting, "****" );
1787-
}
1788-
}
1789-
17901689
/**
17911690
* @return the {@link FastSessionServices} for this {@code SessionFactory}.
17921691
*/
Lines changed: 129 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,129 @@
1+
/*
2+
* Hibernate, Relational Persistence for Idiomatic Java
3+
*
4+
* License: GNU Lesser General Public License (LGPL), version 2.1 or later.
5+
* See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>.
6+
*/
7+
package org.hibernate.internal;
8+
9+
import org.hibernate.boot.cfgxml.spi.CfgXmlAccessService;
10+
import org.hibernate.boot.cfgxml.spi.LoadedConfig;
11+
import org.hibernate.boot.spi.SessionFactoryOptions;
12+
import org.hibernate.cfg.AvailableSettings;
13+
import org.hibernate.engine.config.spi.ConfigurationService;
14+
import org.hibernate.query.sqm.mutation.internal.temptable.GlobalTemporaryTableStrategy;
15+
import org.hibernate.query.sqm.mutation.internal.temptable.LocalTemporaryTableStrategy;
16+
import org.hibernate.query.sqm.mutation.internal.temptable.PersistentTableStrategy;
17+
import org.hibernate.service.spi.SessionFactoryServiceRegistry;
18+
19+
import java.util.HashMap;
20+
import java.util.Map;
21+
22+
import static org.hibernate.cfg.PersistenceSettings.PERSISTENCE_UNIT_NAME;
23+
import static org.hibernate.cfg.PersistenceSettings.SESSION_FACTORY_JNDI_NAME;
24+
import static org.hibernate.cfg.ValidationSettings.JAKARTA_VALIDATION_FACTORY;
25+
import static org.hibernate.cfg.ValidationSettings.JPA_VALIDATION_FACTORY;
26+
import static org.hibernate.engine.config.spi.StandardConverters.STRING;
27+
import static org.hibernate.internal.log.DeprecationLogger.DEPRECATION_LOGGER;
28+
import static org.hibernate.internal.util.StringHelper.isNotEmpty;
29+
30+
/**
31+
* Helper methods used to set up a {@link SessionFactoryImpl}.
32+
*/
33+
class SessionFactorySettings {
34+
35+
static Map<String, Object> getSettings(
36+
SessionFactoryOptions options, SessionFactoryServiceRegistry serviceRegistry) {
37+
final Map<String, Object> settings =
38+
serviceRegistry.requireService( ConfigurationService.class )
39+
.getSettings();
40+
final Map<String,Object> result = new HashMap<>( settings );
41+
if ( !settings.containsKey( JPA_VALIDATION_FACTORY )
42+
&& !settings.containsKey( JAKARTA_VALIDATION_FACTORY ) ) {
43+
final Object reference = options.getValidatorFactoryReference();
44+
if ( reference != null ) {
45+
result.put( JPA_VALIDATION_FACTORY, reference );
46+
result.put( JAKARTA_VALIDATION_FACTORY, reference );
47+
}
48+
}
49+
return result;
50+
}
51+
52+
static String getSessionFactoryName(
53+
SessionFactoryOptions options, SessionFactoryServiceRegistry serviceRegistry) {
54+
final String sessionFactoryName = options.getSessionFactoryName();
55+
if ( sessionFactoryName != null ) {
56+
return sessionFactoryName;
57+
}
58+
59+
final LoadedConfig loadedConfig =
60+
serviceRegistry.requireService( CfgXmlAccessService.class )
61+
.getAggregatedConfig();
62+
if ( loadedConfig != null ) {
63+
final String nameFromAggregation = loadedConfig.getSessionFactoryName();
64+
if ( nameFromAggregation != null ) {
65+
return nameFromAggregation;
66+
}
67+
}
68+
69+
final ConfigurationService configurationService =
70+
serviceRegistry.requireService( ConfigurationService.class );
71+
return configurationService.getSetting( PERSISTENCE_UNIT_NAME, STRING );
72+
}
73+
74+
static void maskOutSensitiveInformation(Map<String, Object> props) {
75+
maskOutIfSet( props, AvailableSettings.JPA_JDBC_USER );
76+
maskOutIfSet( props, AvailableSettings.JPA_JDBC_PASSWORD );
77+
maskOutIfSet( props, AvailableSettings.JAKARTA_JDBC_USER );
78+
maskOutIfSet( props, AvailableSettings.JAKARTA_JDBC_PASSWORD );
79+
maskOutIfSet( props, AvailableSettings.USER );
80+
maskOutIfSet( props, AvailableSettings.PASS );
81+
}
82+
83+
private static void maskOutIfSet(Map<String, Object> props, String setting) {
84+
if ( props.containsKey( setting ) ) {
85+
props.put( setting, "****" );
86+
}
87+
}
88+
89+
static String determineJndiName(
90+
String name,
91+
SessionFactoryOptions options,
92+
SessionFactoryServiceRegistry serviceRegistry) {
93+
final ConfigurationService configService =
94+
serviceRegistry.requireService( ConfigurationService.class );
95+
final String explicitJndiName = configService.getSetting( SESSION_FACTORY_JNDI_NAME, STRING );
96+
if ( isNotEmpty( explicitJndiName ) ) {
97+
return explicitJndiName;
98+
}
99+
else {
100+
final String unitName = configService.getSetting( PERSISTENCE_UNIT_NAME, STRING );
101+
// do not use name for JNDI if explicitly asked not to or if name comes from JPA persistence-unit name
102+
final boolean nameIsNotJndiName =
103+
options.isSessionFactoryNameAlsoJndiName() == Boolean.FALSE
104+
|| isNotEmpty( unitName );
105+
return !nameIsNotJndiName ? name : null;
106+
}
107+
}
108+
109+
static void deprecationCheck(Map<String, Object> settings) {
110+
for ( String setting:settings.keySet() ) {
111+
switch ( setting ) {
112+
case "hibernate.hql.bulk_id_strategy.global_temporary.create_tables":
113+
DEPRECATION_LOGGER.deprecatedSetting( "hibernate.hql.bulk_id_strategy.global_temporary.create_tables", GlobalTemporaryTableStrategy.CREATE_ID_TABLES );
114+
case "hibernate.hql.bulk_id_strategy.global_temporary.drop_tables":
115+
DEPRECATION_LOGGER.deprecatedSetting( "hibernate.hql.bulk_id_strategy.global_temporary.drop_tables", GlobalTemporaryTableStrategy.DROP_ID_TABLES );
116+
case "hibernate.hql.bulk_id_strategy.persistent.create_tables":
117+
DEPRECATION_LOGGER.deprecatedSetting( "hibernate.hql.bulk_id_strategy.persistent.create_tables", PersistentTableStrategy.CREATE_ID_TABLES );
118+
case "hibernate.hql.bulk_id_strategy.persistent.drop_tables":
119+
DEPRECATION_LOGGER.deprecatedSetting( "hibernate.hql.bulk_id_strategy.persistent.drop_tables", PersistentTableStrategy.DROP_ID_TABLES );
120+
case "hibernate.hql.bulk_id_strategy.persistent.schema":
121+
DEPRECATION_LOGGER.deprecatedSetting( "hibernate.hql.bulk_id_strategy.persistent.schema", PersistentTableStrategy.SCHEMA );
122+
case "hibernate.hql.bulk_id_strategy.persistent.catalog":
123+
DEPRECATION_LOGGER.deprecatedSetting( "hibernate.hql.bulk_id_strategy.persistent.catalog", PersistentTableStrategy.CATALOG );
124+
case "hibernate.hql.bulk_id_strategy.local_temporary.drop_tables":
125+
DEPRECATION_LOGGER.deprecatedSetting( "hibernate.hql.bulk_id_strategy.local_temporary.drop_tables", LocalTemporaryTableStrategy.DROP_ID_TABLES );
126+
}
127+
}
128+
}
129+
}

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

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -748,11 +748,6 @@ public List<RootGraph<?>> findRootGraphsForType(EntityPersister baseEntityDescri
748748
return null;
749749
}
750750

751-
@Override
752-
public void close() {
753-
// anything to do ?
754-
}
755-
756751
private String[] doGetImplementors(Class<?> clazz) throws MappingException {
757752
final ArrayList<String> results = new ArrayList<>();
758753
for ( EntityPersister checkPersister : entityPersisters().values() ) {

0 commit comments

Comments
 (0)