2017-11-10 5 views
1

がプログラム検証データベーススキーマは、プログラム休止状態にある// MySQLNonTransientConnectionException

@Autowired  
LocalContainerEntityManagerFactoryBean localContainerEntityManagerFactoryBean; 

をスキーマを検証しようとすると、コンフィギュレーション

private Configuration getHibernateConfiguration() { 
     final PersistenceUnitInfo persistenceUnitInfo = localContainerEntityManagerFactoryBean.getPersistenceUnitInfo(); 
     final Map<String, Object> jpaPropertyMap = localContainerEntityManagerFactoryBean.getJpaPropertyMap(); 
     EntityManagerFactoryBuilderImpl builder = new EntityManagerFactoryBuilderImpl(new PersistenceUnitInfoDescriptor(persistenceUnitInfo), jpaPropertyMap) { 
      @Override 
      public Configuration buildHibernateConfiguration(ServiceRegistry serviceRegistry) { 
       Configuration configuration = super.buildHibernateConfiguration(serviceRegistry); 
       if (persistenceUnitInfo instanceof SmartPersistenceUnitInfo) { 
        for (String managedPackage : ((SmartPersistenceUnitInfo) persistenceUnitInfo).getManagedPackages()) { 
         configuration.addPackage(managedPackage); 
        } 
       } 
       return configuration; 
      } 
     }; 
     serviceRegistry = builder.buildServiceRegistry(); 


     return builder.buildHibernateConfiguration(serviceRegistry); 
    } 

にこの方法を休止取得するためのコードをスローConfigurationクラスからschemaValidatorのメソッドを呼び出そうとしました。

マルチテナントモードでhibernateを使用するため、プログラムでスキーマを検証しようとしています。

スキーマ検証は完璧に動作しますが、数分後には、検証が失敗した場合場合に

MySQLNonTransientConnectionExceptionをスローしようとします。

貴重なご提案をお願いします。

答えて

0

はい、スキーマの検証に失敗したときにデータソースが閉じられませんでした