private static SessionFactory buildSessionFactory() { try { StandardServiceRegistry standardRegistry = new StandardServiceRegistryBuilder().configure("hibernate.cfg.xml").build(); Metadata metadata = new MetadataSources(standardRegistry).getMetadataBuilder().build(); return metadata.getSessionFactoryBuilder().build(); } catch (HibernateException e) { System.out.println("Problema creando SessionFactory " + e); } return sessionFactory; }
@Before public void setUp() { AbstractMultiTenantConnectionProvider multiTenantConnectionProvider = buildMultiTenantConnectionProvider(); Map settings = new HashMap(); settings.put(Environment.MULTI_TENANT, MultiTenancyStrategy.SCHEMA); settings.put(Environment.CACHE_REGION_FACTORY, CachingRegionFactory.class.getName()); settings.put(Environment.GENERATE_STATISTICS, "true"); serviceRegistry = (ServiceRegistryImplementor) new StandardServiceRegistryBuilder() .applySettings(settings) .addService(MultiTenantConnectionProvider.class, multiTenantConnectionProvider) .build(); MetadataSources ms = new MetadataSources(serviceRegistry); ms.addAnnotatedClass(Customer.class); ms.addAnnotatedClass(Invoice.class); Metadata metadata = ms.buildMetadata(); ((RootClass) metadata.getEntityBinding(Customer.class.getName())) .setCacheConcurrencyStrategy("read-write"); HibernateSchemaManagementTool tool = new HibernateSchemaManagementTool(); tool.injectServices(serviceRegistry); final GenerationTargetToDatabase acmeTarget = new GenerationTargetToDatabase( new DdlTransactionIsolatorTestingImpl(serviceRegistry, acmeProvider)); final GenerationTargetToDatabase jbossTarget = new GenerationTargetToDatabase( new DdlTransactionIsolatorTestingImpl(serviceRegistry, jbossProvider)); new SchemaDropperImpl(serviceRegistry) .doDrop(metadata, serviceRegistry, settings, true, acmeTarget, jbossTarget); new SchemaCreatorImpl(serviceRegistry) .doCreation(metadata, serviceRegistry, settings, true, acmeTarget, jbossTarget); final SessionFactoryBuilder sfb = metadata.getSessionFactoryBuilder(); configure(sfb); sessionFactory = (SessionFactoryImplementor) sfb.build(); }