Hibernate 4 sem XML

Bom dia amigos,

Gostaria de saber se é possivel iniciarmos o hibernate 4 sem o arquivo de XML, setando as configuração programaticamente.

Procurei na documentação do Hibernate, mas la ainda falam para usar o Configuration configure e buildSessionFactory.

Por enquanto meu codigo esta assim:

[code]ServiceRegistryBuilder builder = new ServiceRegistryBuilder();

ServiceRegistry serviceRegistry = builder.configure().buildServiceRegistry();
MetadataSources metadataSources = new MetadataSources(serviceRegistry);
metadataSources.addAnnotatedClass(Produto.class);

SessionFactory sessionFactory = metadataSources.buildMetadata().buildSessionFactory();[/code]

Tentei criar um Map e passar para o builder.applySettings mas não deu certo.

Muito Obrigado

Tenta da forma que o sujeito sugere http://stackoverflow.com/questions/8621906/is-buildsessionfactory-deprecated-in-hibernate-4

Esta forma pede o hibernate.cfg.xml e sem ele eu tenho o erro:

Exception in thread "main" org.hibernate.metamodel.source.MappingException: Unable to create stax reader at org.hibernate.service.internal.JaxbProcessor.unmarshal(JaxbProcessor.java:80) at org.hibernate.service.ServiceRegistryBuilder.configure(ServiceRegistryBuilder.java:162) at org.hibernate.service.ServiceRegistryBuilder.configure(ServiceRegistryBuilder.java:147) at br.com.fj28.test.AdicaoDeProduto.main(AdicaoDeProduto.java:27) Caused by: javax.xml.stream.XMLStreamException: java.net.MalformedURLException at com.sun.org.apache.xerces.internal.impl.XMLStreamReaderImpl.setInputSource(Unknown Source) at com.sun.org.apache.xerces.internal.impl.XMLStreamReaderImpl.<init>(Unknown Source) at com.sun.xml.internal.stream.XMLInputFactoryImpl.getXMLStreamReaderImpl(Unknown Source) at com.sun.xml.internal.stream.XMLInputFactoryImpl.createXMLStreamReader(Unknown Source) at org.hibernate.service.internal.JaxbProcessor.unmarshal(JaxbProcessor.java:67) ... 3 more Caused by: java.net.MalformedURLException at java.net.URL.<init>(Unknown Source) at java.net.URL.<init>(Unknown Source) at java.net.URL.<init>(Unknown Source) at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.setupCurrentEntity(Unknown Source) at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.startEntity(Unknown Source) at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.startDocumentEntity(Unknown Source) at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.setInputSource(Unknown Source) ... 8 more Caused by: java.lang.NullPointerException ... 15 more

A chamada builder.configure() espera que em seu projeto tenha um hibernate.cfg.xml.

Crie um configuration e informe as properties de configuração do hibernate, build o service registry sem chamar o configure.

		Configuration cfg = new Configuration();
		cfg.setProperty("hibernate.connection.driver_class", "com.mysql.jdbc.Driver");
		(...)

		ServiceRegistryBuilder builder = new ServiceRegistryBuilder();
		builder.applySettings(cfg.getProperties());

		ServiceRegistry serviceRegistry = builder.buildServiceRegistry();