Hibernate com annotations

2 respostas
G

Olá pessoal!

Gostaria da ajuda de vocês.....

Estou com o seguinte problema:
Caused by: java.lang.AbstractMethodError: org.postgresql.jdbc2.Jdbc2DatabaseMetaData.supportsGetGeneratedKeys()Z

quando tento executar o meu programa que utiliza o hibernate.

Tenho os seguintes jars:
C:\Program Files\Java\jre1.6.0_07\lib\resources.jar
C:\Program Files\Java\jre1.6.0_07\lib\rt.jar
C:\Program Files\Java\jre1.6.0_07\lib\jsse.jar
C:\Program Files\Java\jre1.6.0_07\lib\jce.jar
C:\Program Files\Java\jre1.6.0_07\lib\charsets.jar
C:\Program Files\Java\jre1.6.0_07\lib\ext\dnsns.jar
C:\Program Files\Java\jre1.6.0_07\lib\ext\localedata.jar
C:\Program Files\Java\jre1.6.0_07\lib\ext\postgresql-8.3-603.jdbc2.jar
C:\Program Files\Java\jre1.6.0_07\lib\ext\sunjce_provider.jar
C:\Program Files\Java\jre1.6.0_07\lib\ext\sunmscapi.jar
C:\Program Files\Java\jre1.6.0_07\lib\ext\sunpkcs11.jar
C:\Users\Gunnar\Documents\Text\Java\Hibernate\hibernate-distribution-3.3.2.GA\lib\required\antlr-2.7.6.jar
C:\Users\Gunnar\Documents\Text\Java\Hibernate\hibernate-distribution-3.3.2.GA\lib\required\commons-collections-3.1.jar
C:\Users\Gunnar\Documents\Text\Java\Hibernate\hibernate-distribution-3.3.2.GA\lib\required\dom4j-1.6.1.jar
C:\Users\Gunnar\Documents\Text\Java\Hibernate\hibernate-distribution-3.3.2.GA\lib\required\javassist-3.9.0.GA.jar
C:\Users\Gunnar\Documents\Text\Java\Hibernate\hibernate-distribution-3.3.2.GA\lib\required\jta-1.1.jar
C:\Users\Gunnar\Documents\Text\Java\Hibernate\hibernate-distribution-3.3.2.GA\lib\required\slf4j-api-1.5.8.jar
C:\Users\Gunnar\Documents\Text\Java\Hibernate\hibernate-distribution-3.3.2.GA\hibernate3.jar
C:\Users\Gunnar\Documents\Text\Java\Hibernate\hibernate-annotations-3.4.0.GA\hibernate-annotations.jar
C:\Users\Gunnar\Documents\Text\Java\Hibernate\hibernate-annotations-3.4.0.GA\lib\ejb3-persistence.jar
C:\Users\Gunnar\Documents\Text\Java\Hibernate\hibernate-annotations-3.4.0.GA\lib\hibernate-commons-annotations.jar
C:\Users\Gunnar\Documents\Text\Java\Hibernate\slf4j-1.5.8\slf4j-nop-1.5.8.jar

e as seguintes classes e arquivos:
package hello;

import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.AnnotationConfiguration;

public class HibernateUtil {
	private static final SessionFactory sessionFactory;

	static {
		try {

			sessionFactory = new AnnotationConfiguration().addPackage("hello")
					.addAnnotatedClass(Teste.class).configure()
					.buildSessionFactory();
		} catch (Throwable ex) {
			// Log exception!
			throw new ExceptionInInitializerError(ex);
		}
	}

	public static Session getSession() throws HibernateException {
		return sessionFactory.openSession();
	}

}
<?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>
        <property name="hibernate.connection.driver_class">org.postgresql.Driver</property>
        <property name="hibernate.connection.password">password</property>
        <property name="hibernate.connection.url">jdbc:postgresql://localhost:5432/gunnar</property>
        <property name="hibernate.connection.username">postgres</property>
        <property name="hibernate.default_schema">public</property>
        <property name="hibernate.dialect">org.hibernate.dialect.PostgreSQLDialect</property>
    </session-factory>
</hibernate-configuration>
package hello;

import org.hibernate.Session;

public class Main {
	public static void main(String[] args) {
		HibernateUtil util = new HibernateUtil();
		Session session = util.getSession();

	}
}
package hello;

import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;

@Entity
@Table(name="teste")
public class Teste {
	@Id
    private int id;

    public int getId() {
	return id;
    }

    public void setId(int id) {
	this.id = id;
    }

}

qualquer ajuda é bem vinda

[]s

2 Respostas

fredaguiar

eu nao entendi bem o seu session factory, mas geralmente para annotation se faz assim

sessionFactory = new AnnotationConfiguration().configure().buildSessionFactory();

G

O meu sessionFactory é inicializado daquela forma para que eu não precise do arquivo Teste.hbm.xml nem de ficar configurando
outros parametros no hibernate.conf.xml

Consegui resolver o problema…era o driver do postgres.

[]s

Criado 29 de setembro de 2009
Ultima resposta 2 de out. de 2009
Respostas 2
Participantes 2