Tenho um sisteminha utilizando hibernate, porém com hbm.xml e gostaria de utilizar annotations.
O problema é quando tento modificar a minha classe “HibernateUtil”, que está assim:
publicclassHibernateUtil{privatestaticSessionFactorysessionFactory;static{try{sessionFactory=newAnnotationConfiguration().buildSessionFactory();//sessionFactory = new Configuration().configure().buildSessionFactory();}catch(Throwableex){// Log exception!thrownewExceptionInInitializerError(ex);}}publicstaticSessiongetSession()throwsHibernateException{returnsessionFactory.openSession();}}
Quando deixo a linha abaixo dessa maneira, dá erro:
sessionFactory = new AnnotationConfiguration).buildSessionFactory();
Se eu deixá-la da forma antiga, ele funciona com os hbm.xml:
sessionFactory = new Configuration().configure().buildSessionFactory();
A impressão que tive é que quando mudo esta linha, ele não encontra mais o arquivo “hibernate.cfg.xml”. O erro é o seguinte:
[b]Exception in thread “main” java.lang.ExceptionInInitializerErrorat br.com.progov.hibernate.HibernateUtil.(HibernateUtil.java:30)at br.com.progov.dao.hibernateimpl.GenericoDAOHibernateImpl.selectById(GenericoDAOHibernateImpl.java:80)at testes.SetorPersistencia.main(SetorPersistencia.java:11)Caused by:org.hibernate.HibernateException: Hibernate Dialect must be explicitly setat org.hibernate.dialect.DialectFactory.determineDialect(DialectFactory.java:57)at org.hibernate.dialect.DialectFactory.buildDialect(DialectFactory.java:39)at org.hibernate.cfg.SettingsFactory.determineDialect(SettingsFactory.java:378)at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:110)at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:1859)at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1152)at br.com.progov.hibernate.HibernateUtil.(HibernateUtil.java:26)… 2 moreJava Result:1
Caused by: org.hibernate.HibernateException: Hibernate Dialect must be explicitly set
?
gustavodelgado
LIPE:
Caused by: org.hibernate.HibernateException: Hibernate Dialect must be explicitly set
?
Sim!! Parece que ele não encontra o hibernate.hbm.xml. Se eu colocar o arquivo hibernate.properties, o erro já muda… ele não encontra a classe mapeada. Tem como eu mapear as classes (beans) pelo hibernate.properties?? Meu hbm.xml está assim:
<?xml version='1.0' encoding='utf-8'?><!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"><hibernate-configuration><session-factory><propertyname="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property><propertyname="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property><propertyname="hibernate.connection.url">jdbc:mysql://localhost/des_progov?autoReconnect=true</property><propertyname="hibernate.connection.username">pg_intranet</property><propertyname="hibernate.connection.password">i9n8t7</property>-->
<!-- Condiguração do c3p0 --><propertyname="hibernate.c3p0.max_size">10</property><propertyname="hibernate.c3p0.min_size">2</property><propertyname="hibernate.c3p0.timeout">5000</property><propertyname="hibernate.c3p0.max_statements">10</property><propertyname="hibernate.c3p0.idle_test_period">3000</property><propertyname="hibernate.c3p0.acquire_increment">2</property><!-- Configurações de debug --><propertyname="show_sql">true</property><propertyname="hibernate.generate_statistics">true</property><propertyname="hibernate.use_sql_comments">true</property><mappingclass="testes.Contato"/></session-factory></hibernate-configuration>
urubatan
não é que não encontra, olha a diferença das duas linhas:
sessionFactory = new AnnotationConfiguration().buildSessionFactory();
//sessionFactory = new Configuration().configure().buildSessionFactory();
quem sabe se tu tentar:
sessionFactory = new AnnotationConfiguration().configure().buildSessionFactory();
//sessionFactory = new Configuration().configure().buildSessionFactory();
[b]Exception in thread “main” java.lang.ExceptionInInitializerErrorat br.com.progov.hibernate.HibernateUtil.(HibernateUtil.java:22)at testes.HibernateTeste.main(HibernateTeste.java:17)Caused by:org.hibernate.MappingException: invalid configurationat org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1347)at org.hibernate.cfg.Configuration.configure(Configuration.java:1288)at org.hibernate.cfg.Configuration.configure(Configuration.java:1274)at br.com.progov.hibernate.HibernateUtil.(HibernateUtil.java:17)… 1 moreCaused by:org.xml.sax.SAXParseException: The content of element type “session-factory” must match “(property*,mapping*,(class-cache|collection-cache)<em>,event</em>,listener*)”.at org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source)at org.apache.xerces.util.ErrorHandlerWrapper.error(Unknown Source)at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)at org.apache.xerces.impl.dtd.XMLDTDValidator.handleEndElement(Unknown Source)at org.apache.xerces.impl.dtd.XMLDTDValidator.endElement(Unknown Source)at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanEndElement(Unknown Source)at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)at org.dom4j.io.SAXReader.read(SAXReader.java:465)at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1344)… 4 more
[/b]
Devo estar cometendo algum erro besta, mas tá difícil descobrir hein… rs
Estou tentando com uma classe de teste (que copiei de outro tópico aqui), que está mapeada assim: