public void close() { // The spec says so, that's why :( validateNotClosed(); sessionFactory.close(); EntityManagerFactoryRegistry.INSTANCE.removeEntityManagerFactory( entityManagerFactoryName, this); }
private static EntityManagerFactory getNamedEntityManagerFactory(String entityManagerFactoryName) throws InvalidObjectException { Object result = EntityManagerFactoryRegistry.INSTANCE.getNamedEntityManagerFactory( entityManagerFactoryName); if (result == null) { throw new InvalidObjectException( "could not resolve entity manager factory during entity manager deserialization [name=" + entityManagerFactoryName + "]"); } return (EntityManagerFactory) result; }
public EntityManagerFactoryImpl( String persistenceUnitName, SessionFactoryImplementor sessionFactory, SettingsImpl settings, Map<?, ?> configurationValues, Configuration cfg) { this.sessionFactory = (SessionFactoryImpl) sessionFactory; this.transactionType = settings.getTransactionType(); this.discardOnClose = settings.isReleaseResourcesOnCloseEnabled(); this.sessionInterceptorClass = settings.getSessionInterceptorClass(); final JpaMetaModelPopulationSetting jpaMetaModelPopulationSetting = determineJpaMetaModelPopulationSetting(cfg); if (JpaMetaModelPopulationSetting.DISABLED == jpaMetaModelPopulationSetting) { this.metamodel = null; } else { this.metamodel = MetamodelImpl.buildMetamodel( cfg.getClassMappings(), cfg.getMappedSuperclassMappingsCopy(), sessionFactory, JpaMetaModelPopulationSetting.IGNORE_UNSUPPORTED == jpaMetaModelPopulationSetting); } this.criteriaBuilder = new CriteriaBuilderImpl(this); this.util = new HibernatePersistenceUnitUtil(this); HashMap<String, Object> props = new HashMap<String, Object>(); addAll(props, sessionFactory.getProperties()); addAll(props, cfg.getProperties()); addAll(props, configurationValues); maskOutSensitiveInformation(props); this.properties = Collections.unmodifiableMap(props); String entityManagerFactoryName = (String) this.properties.get(AvailableSettings.ENTITY_MANAGER_FACTORY_NAME); if (entityManagerFactoryName == null) { entityManagerFactoryName = persistenceUnitName; } if (entityManagerFactoryName == null) { entityManagerFactoryName = (String) UUID_GENERATOR.generate(null, null); } this.entityManagerFactoryName = entityManagerFactoryName; applyNamedEntityGraphs(cfg.getNamedEntityGraphs()); EntityManagerFactoryRegistry.INSTANCE.addEntityManagerFactory(entityManagerFactoryName, this); }