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
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();