Método buildSessionFactor() depreciado

Como obter uma SessionFactory no Hibernate 4.0?

Em versões anteriores, eu utilizava:

Porém, na versão 4.0 do Hibernate, o método buildSessionFactory encontra-se depreciado. Uma alternativa é utilizar o mesmo método passando como parâmetro um ServiceRegistry, que por sinal é uma interface. Nunca ouvi nem falar nessa interface… Alguém da um help ai

Eu até encontrei uma possível solução:

Configuration cfg = new Configuration();
cfg.configure();
ServiceRegistryBuilder srb = new ServiceRegistryBuilder();
ServiceRegistry registry = srb.buildServiceRegistry();
SessionFactory factory = cfg.buildSessionFactory(registry);

Mas quando faço uma transação qualquer, recebo:

Fiz um teste utilizando o método depreciado mesmo, e deu tudo certo… Acho que o erro ta nessa “gambiarra” aí do ServiceRegistry e tal… Alguém tem alguma solução pra esse probleminha aí???

[quote=fredericoengels]Eu até encontrei uma possível solução:

Configuration cfg = new Configuration();
cfg.configure();
ServiceRegistryBuilder srb = new ServiceRegistryBuilder();
ServiceRegistry registry = srb.buildServiceRegistry();
SessionFactory factory = cfg.buildSessionFactory(registry);

Mas quando faço uma transação qualquer, recebo:

Fiz um teste utilizando o método depreciado mesmo, e deu tudo certo… Acho que o erro ta nessa “gambiarra” aí do ServiceRegistry e tal… Alguém tem alguma solução pra esse probleminha aí??? [/quote]

Galera passei pelo mesmo problema do fredericoengels, porém conseguir contorna este problema. segue a solução

Configuration cfg = new Configuration().configure();
ConfigurationService configurationService = new ConfigurationServiceImpl(cfg.getProperties());
ServiceRegistryBuilder serviceRegistry = new ServiceRegistryBuilder().applySettings(configurationService.getSettings());
ServiceRegistry registry = serviceRegistry.buildServiceRegistry();
factory = cfg.buildSessionFactory(registry);

A pergunta a ser feita, alguém ai sabe responder por que para obter uma SessionFactory precisa fazer este procedimento,
tendo que utilizar ServiceRegistry?

Mas quando faço uma transação qualquer, recebo:

Eu acredito que o método abaixo possa te ajudar.

cfg.configure().setProperty(“hibernate.dialect”, “org.hibernate.dialect.MySQLDialect”);

[quote=jweibe][quote=fredericoengels]Eu até encontrei uma possível solução:

Configuration cfg = new Configuration();
cfg.configure();
ServiceRegistryBuilder srb = new ServiceRegistryBuilder();
ServiceRegistry registry = srb.buildServiceRegistry();
SessionFactory factory = cfg.buildSessionFactory(registry);

Mas quando faço uma transação qualquer, recebo:

Fiz um teste utilizando o método depreciado mesmo, e deu tudo certo… Acho que o erro ta nessa “gambiarra” aí do ServiceRegistry e tal… Alguém tem alguma solução pra esse probleminha aí??? [/quote]

Galera passei pelo mesmo problema do fredericoengels, porém conseguir contorna este problema. segue a solução

Configuration cfg = new Configuration().configure();
ConfigurationService configurationService = new ConfigurationServiceImpl(cfg.getProperties());
ServiceRegistryBuilder serviceRegistry = new ServiceRegistryBuilder().applySettings(configurationService.getSettings());
ServiceRegistry registry = serviceRegistry.buildServiceRegistry();
factory = cfg.buildSessionFactory(registry);

A pergunta a ser feita, alguém ai sabe responder por que para obter uma SessionFactory precisa fazer este procedimento,
tendo que utilizar ServiceRegistry?[/quote]

Eu postei essa configuracao em um post aqui no GUJ.