Hibernate (java.lang.AbstractMethodError)

12 respostas
Yago_Ernandes

Eu ja usava o Hibernate antes mas agora ele começou dar este erro em todas as aplicações que eu faço:

Out 22, 2012 10:05:14 AM org.hibernate.annotations.common.Version <clinit> INFO: HCANN000001: Hibernate Commons Annotations {4.0.1.Final} Out 22, 2012 10:05:14 AM org.hibernate.Version logVersion INFO: HHH000412: Hibernate Core {4.1.6.Final} Out 22, 2012 10:05:14 AM org.hibernate.cfg.Environment <clinit> INFO: HHH000206: hibernate.properties not found Out 22, 2012 10:05:14 AM org.hibernate.cfg.Environment buildBytecodeProvider INFO: HHH000021: Bytecode provider name : javassist Out 22, 2012 10:05:14 AM org.hibernate.cfg.Configuration configure INFO: HHH000043: Configuring from resource: /hibernate.cfg.xml Out 22, 2012 10:05:14 AM org.hibernate.cfg.Configuration getConfigurationInputStream INFO: HHH000040: Configuration resource: /hibernate.cfg.xml Out 22, 2012 10:05:14 AM org.hibernate.internal.util.xml.DTDEntityResolver resolveEntity WARN: HHH000223: Recognized obsolete hibernate namespace http://hibernate.sourceforge.net/. Use namespace http://www.hibernate.org/dtd/ instead. Refer to Hibernate 3.6 Migration Guide! Out 22, 2012 10:05:14 AM org.hibernate.cfg.Configuration doConfigure INFO: HHH000041: Configured SessionFactory: null Out 22, 2012 10:05:14 AM org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure INFO: HHH000402: Using Hibernate built-in connection pool (not for production use!) Out 22, 2012 10:05:14 AM org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure INFO: HHH000115: Hibernate connection pool size: 20 Out 22, 2012 10:05:14 AM org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure INFO: HHH000006: Autocommit mode: false Out 22, 2012 10:05:14 AM org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure INFO: HHH000401: using driver [org.postgresql.Driver] at URL [jdbc:postgresql://localhost:5432/topsoft2] Out 22, 2012 10:05:14 AM org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure INFO: HHH000046: Connection properties: {user=postgres, password=****} Falha na criação da SessionFactory: java.lang.AbstractMethodError: org.postgresql.jdbc2.Jdbc2DatabaseMetaData.supportsGetGeneratedKeys()Z Exception in thread "AWT-EventQueue-0" java.lang.ExceptionInInitializerError at view.HibernateUtil.getSessionFactory(HibernateUtil.java:24) at view.CadFunc.jButton1ActionPerformed(CadFunc.java:389) at view.CadFunc.access$000(CadFunc.java:15) at view.CadFunc$1.actionPerformed(CadFunc.java:85) at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018) at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341) at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402) at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259) at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252) at java.awt.Component.processMouseEvent(Component.java:6505) at javax.swing.JComponent.processMouseEvent(JComponent.java:3321) at java.awt.Component.processEvent(Component.java:6270) at java.awt.Container.processEvent(Container.java:2229) at java.awt.Component.dispatchEventImpl(Component.java:4861) at java.awt.Container.dispatchEventImpl(Container.java:2287) at java.awt.Component.dispatchEvent(Component.java:4687) at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832) at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492) at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422) at java.awt.Container.dispatchEventImpl(Container.java:2273) at java.awt.Window.dispatchEventImpl(Window.java:2719) at java.awt.Component.dispatchEvent(Component.java:4687) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:713) at java.awt.EventQueue.access$000(EventQueue.java:104) at java.awt.EventQueue$3.run(EventQueue.java:672) at java.awt.EventQueue$3.run(EventQueue.java:670) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76) at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87) at java.awt.EventQueue$4.run(EventQueue.java:686) at java.awt.EventQueue$4.run(EventQueue.java:684) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76) at java.awt.EventQueue.dispatchEvent(EventQueue.java:683) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:244) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:163) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:155) at java.awt.WaitDispatchSupport$2.run(WaitDispatchSupport.java:182) at java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:221) at java.security.AccessController.doPrivileged(Native Method) at java.awt.WaitDispatchSupport.enter(WaitDispatchSupport.java:219) at java.awt.Dialog.show(Dialog.java:1077) at view.Principal.jButton1ActionPerformed(Principal.java:95) at view.Principal.access$000(Principal.java:11) at view.Principal$1.actionPerformed(Principal.java:43) at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018) at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341) at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402) at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259) at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252) at java.awt.Component.processMouseEvent(Component.java:6505) at javax.swing.JComponent.processMouseEvent(JComponent.java:3321) at java.awt.Component.processEvent(Component.java:6270) at java.awt.Container.processEvent(Container.java:2229) at java.awt.Component.dispatchEventImpl(Component.java:4861) at java.awt.Container.dispatchEventImpl(Container.java:2287) at java.awt.Component.dispatchEvent(Component.java:4687) at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832) at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492) at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422) at java.awt.Container.dispatchEventImpl(Container.java:2273) at java.awt.Window.dispatchEventImpl(Window.java:2719) at java.awt.Component.dispatchEvent(Component.java:4687) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:713) at java.awt.EventQueue.access$000(EventQueue.java:104) at java.awt.EventQueue$3.run(EventQueue.java:672) at java.awt.EventQueue$3.run(EventQueue.java:670) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76) at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87) at java.awt.EventQueue$4.run(EventQueue.java:686) at java.awt.EventQueue$4.run(EventQueue.java:684) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76) at java.awt.EventQueue.dispatchEvent(EventQueue.java:683) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:244) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:163) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:147) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:139) at java.awt.EventDispatchThread.run(EventDispatchThread.java:97) Caused by: java.lang.AbstractMethodError: org.postgresql.jdbc2.Jdbc2DatabaseMetaData.supportsGetGeneratedKeys()Z at org.hibernate.engine.jdbc.internal.JdbcServicesImpl.configure(JdbcServicesImpl.java:140) at org.hibernate.service.internal.StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:75) at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:159) at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:131) at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:73) at org.hibernate.cfg.Configuration.buildSettingsInternal(Configuration.java:2279) at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2275) at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1744) at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1784) at view.HibernateUtil.getSessionFactory(HibernateUtil.java:20) ... 80 more

Se for de alguma utilidade, esta parte - at view.HibernateUtil.getSessionFactory(HibernateUtil.java:24) - direciona para esta linha:

E esta - at view.CadFunc.jButton1ActionPerformed(CadFunc.java:389) - vai para esta:

12 Respostas

Hebert_Coelho

Você trocou as bibliotecas? Se estava funcionando e parou de funcionar, alguma coisa mudou.

O que foi?

Yago_Ernandes

Eu estou usando as mesmas bibliotecas de sempre, o que mudou foi que agora eu preciso usar annotations ao invés do xml…

Hebert_Coelho

Yago Ernandes:
Eu estou usando as mesmas bibliotecas de sempre, o que mudou foi que agora eu preciso usar annotations ao invés do xml…
Aaaaaaaaaaaa ta. Então teve alteração…

A versão do hibernate que você está utilizando dá suporte a anotação?

Yago_Ernandes

a versão do meu hibernate é a 4.1.6 e na pasta dele ja veio com este jar:

Então suponho que dê suporte sim…

romarcio

Você identificou a sequencia, deu um nome a ela e tal na anotação?

Yago_Ernandes

Eu fiz isso no campo que é a PK:

@Id @GeneratedValue(generator = "seqdemo", strategy = GenerationType.AUTO) @SequenceGenerator(name = "seqdemo", sequenceName = "seqdemo") @Column(unique = true, name = "codparc", updatable = false) private int codparc;

Está certo?

E nos campos que são FK eu preciso fazer isso também?

romarcio

Não nas FKs não precisa.

Só troca GenerationType.AUTO por GenerationType.SEQUENCE, só pra ver. Sei que não deveria fazer diferença, mas…

Outra coisa, confirma seus imports, veja se eles estão mesmo todos da javax.persistence e não do próprio hibernate.

R

sua classe anotada precisa implementar Serializable.

Yago_Ernandes

Meus imports estão todos com javax, eu mudei para GenerationType.SEQUENCE e continuou com o mesmo erro…

R

Implementou Serializable ?

Yago_Ernandes

implementei sim…

Ah, eu estava usando as bibliotecas do pg 8.2, ai eu adicionei as do 9.1(que é a versão do meu pg), tirei as antigas então ele começou a dar outro erro, agora a aplicação de teste que eu fiz funciona mas entra no exception dentro dela e da esse erro:

romarcio

To achando que esse problema é com o Postgre e não com o Hibernate, da uma pesquisa sobre isso.

Criado 22 de outubro de 2012
Ultima resposta 22 de out. de 2012
Respostas 12
Participantes 4