private void errorIfResourceLocalDueToExplicitSynchronizationType() { // JPA requires that we throw IllegalStateException in cases where: // 1) the PersistenceUnitTransactionType (TransactionCoordinator) is non-JTA // 2) an explicit SynchronizationType is specified if ( !getServiceRegistry().getService( TransactionCoordinatorBuilder.class ).isJta() ) { throw new IllegalStateException( "Illegal attempt to specify a SynchronizationType when building an EntityManager from a " + "EntityManagerFactory defined as RESOURCE_LOCAL (as opposed to JTA)" ); } }
@Override public SessionFactory build() { metadata.validate(); return new SessionFactoryImpl( metadata, buildSessionFactoryOptions() ); }
@Override public JdbcConnectionAccess getJdbcConnectionAccess() { // See class-level JavaDocs for a discussion of the concurrent-access safety of this method if ( jdbcConnectionAccess == null ) { if ( !factory.getSettings().getMultiTenancyStrategy().requiresMultiTenantConnectionProvider() ) { jdbcConnectionAccess = new NonContextualJdbcConnectionAccess( getEventListenerManager(), factory.getServiceRegistry().getService( ConnectionProvider.class ) ); } else { jdbcConnectionAccess = new ContextualJdbcConnectionAccess( getTenantIdentifier(), getEventListenerManager(), factory.getServiceRegistry().getService( MultiTenantConnectionProvider.class ) ); } } return jdbcConnectionAccess; }
private void readObject(ObjectInputStream ois) throws IOException, ClassNotFoundException, SQLException { if ( log.isTraceEnabled() ) { log.trace( "Deserializing " + getClass().getSimpleName() ); } // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Step 1 :: read back non-transient state... ois.defaultReadObject(); sessionEventsManager = new SessionEventListenerManagerImpl(); // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Step 2 :: read back transient state... // -- see above factory = SessionFactoryImpl.deserialize( ois ); jdbcSessionContext = new JdbcSessionContextImpl( this, (StatementInspector) ois.readObject() ); jdbcCoordinator = JdbcCoordinatorImpl.deserialize( ois, this ); cacheTransactionSync = factory.getCache().getRegionFactory().createTransactionContext( this ); transactionCoordinator = factory.getServiceRegistry() .getService( TransactionCoordinatorBuilder.class ) .buildTransactionCoordinator( jdbcCoordinator, this ); entityNameResolver = new CoordinatingEntityNameResolver( factory, interceptor ); exceptionConverter = new ExceptionConverterImpl( this ); } }
prepareEventListeners( metadata ); applyCfgXmlValues( cfgXmlAccessService.getAggregatedConfig(), serviceRegistry ); this.properties.putAll( serviceRegistry.getService( ConfigurationService.class ).getSettings() ); if ( !properties.containsKey( AvailableSettings.JPA_VALIDATION_FACTORY ) ) { if ( getSessionFactoryOptions().getValidatorFactoryReference() != null ) { properties.put( AvailableSettings.JPA_VALIDATION_FACTORY, getSessionFactoryOptions().getValidatorFactoryReference() ); maskOutSensitiveInformation(this.properties); logIfEmptyCompositesEnabled( this.properties ); buildLocalConnectionAccess(), metadata, sessionFactoryOptions currentSessionContext = buildCurrentSessionContext(); final Map<String, HibernateException> errors = checkNamedQueries(); if ( !errors.isEmpty() ) { StringBuilder failingQueries = new StringBuilder( "Errors in named queries: " ); getUuid(), name, settings.isSessionFactoryNameAlsoJndiName(),
Map<String, ClassMetadata> map = (Map<String, ClassMetadata>) sessionFactory.getAllClassMetadata(); for(String entityName : map.keySet()){ SessionFactoryImpl sfImpl = (SessionFactoryImpl) sessionFactory; String tableName = ((AbstractEntityPersister)sfImpl.getEntityPersister(entityName)).getTableName(); System.out.println(entityName + "\t" + tableName); }
@Transactional public String getHibernateDialect(){ return ((SessionFactoryImpl)sessionFactory).getDialect().toString(); }
this.jdbcServices = this.serviceRegistry.getService( JdbcServices.class ); this.dialect = this.jdbcServices.getDialect(); this.sqlFunctionRegistry = new SQLFunctionRegistry( getDialect(), cfg.getSqlFunctions() ); if ( observer != null ) { this.observer.addObserver( observer ); IdentifierGenerator generator = model.getIdentifier().createIdentifierGenerator( cfg.getIdentifierGeneratorFactory(), getDialect(), settings.getDefaultCatalogName(), settings.getDefaultSchemaName(), while ( classes.hasNext() ) { final PersistentClass model = (PersistentClass) classes.next(); model.prepareTemporaryTables( mapping, getDialect() ); final String cacheRegionName = cacheRegionPrefix + model.getRootClass().getCacheRegionName(); final EntityPersister persister = ( ( EntityPersister ) iter.next() ); persister.postInstantiate(); registerEntityNameResolvers( persister ); currentSessionContext = buildCurrentSessionContext(); final Map<String,HibernateException> errors = checkNamedQueries(); if ( ! errors.isEmpty() ) { StringBuilder failingQueries = new StringBuilder( "Errors in named queries: " ); final String entityName = getImportedClassName( mappingFetch.getEntity() ); final EntityPersister owner = entityName == null
factory.getProperties().setProperty(Environment.CURRENT_SESSION_CONTEXT_CLASS, originalCurrentSessionContext); } else { factory.getProperties().remove(Environment.CURRENT_SESSION_CONTEXT_CLASS); Dialect dialect = factory.getDialect(); if (dialect instanceof InstallableDialect) { ((InstallableDialect)dialect).install(factory); .getServiceRegistry() .getService(EventListenerRegistry.class) .getEventListenerGroup(EventType.MERGE);
public AbstractSharedSessionContract(SessionFactoryImpl factory, SessionCreationOptions options) { this.factory = factory; this.cacheTransactionSync = factory.getCache().getRegionFactory().createTransactionContext( this ); if ( MultiTenancyStrategy.NONE == factory.getSettings().getMultiTenancyStrategy() ) { if ( tenantIdentifier != null ) { throw new HibernateException( "SessionFactory was not configured for multi-tenancy" ); this.transactionCoordinator = factory.getServiceRegistry() .getService( TransactionCoordinatorBuilder.class ) .buildTransactionCoordinator( jdbcCoordinator, this );
this.properties = createPropertiesFromMap( metadata.getServiceRegistry().getService( ConfigurationService.class ).getSettings() ); final EntityPersister persister = ( ( EntityPersister ) iter.next() ); persister.postInstantiate(); registerEntityNameResolvers( persister ); currentSessionContext = buildCurrentSessionContext(); final Map<String,HibernateException> errors = checkNamedQueries(); if ( ! errors.isEmpty() ) { StringBuilder failingQueries = new StringBuilder( "Errors in named queries: " ); for ( org.hibernate.metamodel.binding.FetchProfile.Fetch mappingFetch : mappingProfile.getFetches() ) { final String entityName = getImportedClassName( mappingFetch.getEntity() ); final EntityPersister owner = entityName == null ? null : entityPersisters.get( entityName ); if ( owner == null ) { this.customEntityDirtinessStrategy = determineCustomEntityDirtinessStrategy( properties ); this.currentTenantIdentifierResolver = determineCurrentTenantIdentifierResolver( null, properties ); this.transactionEnvironment = new TransactionEnvironmentImpl( this ); this.observer.sessionFactoryCreated( this );
public TransactionEnvironmentImpl(SessionFactoryImpl sessionFactory) { this.sessionFactory = sessionFactory; this.statisticsImplementor = sessionFactory.getStatisticsImplementor(); this.serviceRegistry = sessionFactory.getServiceRegistry(); this.jdbcServices = serviceRegistry.getService( JdbcServices.class ); this.jtaPlatform = serviceRegistry.getService( JtaPlatform.class ); this.transactionFactory = serviceRegistry.getService( TransactionFactory.class ); }
// Get an EntityManagerFactory with the following property set: // properties.put(Environment.CONNECTION_PROVIDER, DeferredConnectionProvider.class.getName()); HibernateEntityManagerFactory factory = (HibernateEntityManagerFactory) entityManagerFactory; // ...do user input of connection info... SessionFactoryImpl sessionFactory = (SessionFactoryImpl) factory.getSessionFactory(); DeferredConnectionProvider connectionProvider = (DeferredConnectionProvider) sessionFactory.getSettings() .getConnectionProvider(); connectionProvider.finalConfiguration(jdbcUrl, userName, password);
if ( canAccessTransactionManager() ) { impl = "jta"; if ( ! transactionFactory().compatibleWithJtaSynchronization() ) { LOG.autoFlushWillNotWork();
if ( canAccessTransactionManager() ) { impl = "jta";
interceptor = ( Interceptor ) ois.readObject(); factory = SessionFactoryImpl.deserialize( ois );
private EntityPersister locateEntityPersister(String entityName) { final EntityPersister entityPersister = factory.getEntityPersister( entityName ); if ( entityPersister == null ) { throw new HibernateException( "Unable to locate persister: " + entityName ); } return entityPersister; }
@Transactional public String getHibernateDialect(){ return ((SessionFactoryImpl)sessionFactory).getDialect().toString(); }
this.jdbcServices = this.serviceRegistry.getService( JdbcServices.class ); this.dialect = this.jdbcServices.getDialect(); this.sqlFunctionRegistry = new SQLFunctionRegistry( getDialect(), cfg.getSqlFunctions() ); if ( observer != null ) { this.observer.addObserver( observer ); IdentifierGenerator generator = model.getIdentifier().createIdentifierGenerator( cfg.getIdentifierGeneratorFactory(), getDialect(), settings.getDefaultCatalogName(), settings.getDefaultSchemaName(), while ( classes.hasNext() ) { final PersistentClass model = (PersistentClass) classes.next(); model.prepareTemporaryTables( mapping, getDialect() ); final String cacheRegionName = cacheRegionPrefix + model.getRootClass().getCacheRegionName(); final EntityPersister persister = ( ( EntityPersister ) iter.next() ); persister.postInstantiate(); registerEntityNameResolvers( persister ); currentSessionContext = buildCurrentSessionContext(); final Map<String,HibernateException> errors = checkNamedQueries(); if ( ! errors.isEmpty() ) { StringBuilder failingQueries = new StringBuilder( "Errors in named queries: " ); final String entityName = getImportedClassName( mappingFetch.getEntity() ); final EntityPersister owner = entityName == null
public AbstractSharedSessionContract(SessionFactoryImpl factory, SessionCreationOptions options) { this.factory = factory; this.cacheTransactionSync = factory.getCache().getRegionFactory().createTransactionContext( this ); if ( MultiTenancyStrategy.NONE == factory.getSettings().getMultiTenancyStrategy() ) { if ( tenantIdentifier != null ) { throw new HibernateException( "SessionFactory was not configured for multi-tenancy" ); this.transactionCoordinator = factory.getServiceRegistry() .getService( TransactionCoordinatorBuilder.class ) .buildTransactionCoordinator( jdbcCoordinator, this );