strategyClass = (Class) setting;
}
else {
final String settingStr = setting.toString();
if ( PersistentTableBulkIdStrategy.SHORT_NAME.equals( settingStr ) ) {
return new PersistentTableBulkIdStrategy();
}
else if ( TemporaryTableBulkIdStrategy.SHORT_NAME.equals( settingStr ) ) {
return TemporaryTableBulkIdStrategy.INSTANCE;
}
strategyClass = classLoaderService.classForName( settingStr );
}
try {
return (MultiTableBulkIdStrategy) strategyClass.newInstance();
}
catch (Exception e) {
throw new HibernateException( "Unable to interpret MultiTableBulkIdStrategy setting [" + setting + "]", e );
}
}
else {
return dialect.supportsTemporaryTables()
? TemporaryTableBulkIdStrategy.INSTANCE
: new PersistentTableBulkIdStrategy();
}
}