Seguinte, to tentando aprender Java usando o Hibernate…mas não to conseguindo, fiz um pequeno exemplo mas nao ta funcionando, to usando o banco de dados HsqlDB e Swing também…toda vez que aciono o botão gravar a parece o um erro… meu projeto esta assim, dentro do meu diretório do projeto tenho uma pasta lib com os arquivos (hibernate3.jar, commons-beanutils.jar, hsqldb.jar entre outros) e um database com os arquivos do banco de dados…anexei os arquivos .java , hbm.xml e cfg.xml…
Anexei os arquivos do projeto…
Minha tabela foi gerada com este script: CREATE CACHED TABLE TBDADOS(IDCODIGO INTEGER NOT NULL PRIMARY KEY,SENHA VARCHAR(10) NOT NULL,NOME VARCHAR(50),NASC INTEGER,TEL INTEGER)
O erro que aparece é o seguinte:
log4j:WARN No appenders could be found for logger (org.hibernate.cfg.Environment).
log4j:WARN Please initialize the log4j system properly.
Exception in thread “AWT-EventQueue-0” java.lang.ExceptionInInitializerError
at Hutil.(Hutil.java:28)
at TelaCadastro$TrataBotoes.actionPerformed(TelaCadastro.java:111)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
Caused by: org.hibernate.MappingException: Error reading resource: tbdados.hbm.xml
at org.hibernate.cfg.Configuration.addResource(Configuration.java:452)
at org.hibernate.cfg.Configuration.parseMappingElement(Configuration.java:1263)
at org.hibernate.cfg.Configuration.parseSessionFactory(Configuration.java:1235)
at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1217)
at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1184)
at org.hibernate.cfg.Configuration.configure(Configuration.java:1112)
at org.hibernate.cfg.Configuration.configure(Configuration.java:1098)
at Hutil.(Hutil.java:23)
… 25 more
Caused by: org.hibernate.PropertyNotFoundException: field not found: id
at org.hibernate.property.DirectPropertyAccessor.getField(DirectPropertyAccessor.java:96)
at org.hibernate.property.DirectPropertyAccessor.getField(DirectPropertyAccessor.java:103)
at org.hibernate.property.DirectPropertyAccessor.getGetter(DirectPropertyAccessor.java:111)
at org.hibernate.util.ReflectHelper.getter(ReflectHelper.java:90)
at org.hibernate.util.ReflectHelper.reflectedPropertyClass(ReflectHelper.java:78)
at org.hibernate.mapping.SimpleValue.setTypeUsingReflection(SimpleValue.java:275)
at org.hibernate.cfg.HbmBinder.bindSimpleId(HbmBinder.java:360)
at org.hibernate.cfg.HbmBinder.bindRootPersistentClassCommonValues(HbmBinder.java:294)
at org.hibernate.cfg.HbmBinder.bindRootClass(HbmBinder.java:236)
at org.hibernate.cfg.HbmBinder.bindRoot(HbmBinder.java:152)
at org.hibernate.cfg.Configuration.add(Configuration.java:362)
at org.hibernate.cfg.Configuration.addInputStream(Configuration.java:400)
at org.hibernate.cfg.Configuration.addResource(Configuration.java:449)
… 32 more
Primeiro vc deve ter a biblioteca commons-logging na sua aplicação… Então ai deveria funcionar!
Se você quiser usar o log4j, vc deve então colocar a biblioteca dele em sua aplicação e um arquivo de properties (ou xml) contendo a configuração do log4j!
Bom dia Thiago, tenho todas esta bibliotecas no meu projeto, inclusive a log4j, sei que tem arquivo sobrando…mas assim que funcionar eu excluo o q não é necessário…
Acho q o erro é que o seu hbm está tentando achar uma propriedade chamada “id”, o q, de acordo com o seu JavaBean e com o seu “telacadastro.java” não existe.
O q exitse no lugar, pelo o q eu pude entender eh a propriedade “_iCodigo”.
Oi Vivi…com sua ajuda consegui resolver o problema realmente era no hbm.xml…so que mesmo assim nao dando or erros anteriores ele nao insere os dados no banco…e nao da nenhuma menssagem de erro…o q pode ser agora?
Coloca esse aquivo aqui dentro do seu classpath Márcio, ele vai escrever as mensagens de log em um arquivo e no console, deve facilitar um pouco descobrir o que está acontecendo.