Erro de configuração no hibernate

Galera…seguinte:
To tentando usar o hibernate com annotations, mas to com um erro aki q naum sei mais pra onde correr…
Eh uma classe bem simples, so com o codigo e uma descricao, que representa o genero de um filme…

@Entity
@Table(name = “genero”)
@SequenceGenerator(
name = “seq_genero”,
sequenceName = “seq_genero”
)
public class Genero {

private Integer codigo;

@Id(generate = GeneratorType.SEQUENCE, generator = “seq_genero”)
@Column(name = “genero_id”)
public Integer getCodigo() {
return codigo;
}

public void setCodigo(Integer codigo) {
this.codigo = codigo;
}

private String descricao;

@Column(name = “nome”)
public String getDescricao() {
return descricao;
}

public void setDescricao(String descricao) {
this.descricao = descricao;
}

}

E no meu hibernate.cfg.xml fiz o mapeamento assim…

<mapping class=“br.unifor.locadora.model.Genero” />

Mas na execuçao…tah dando o seguinte erro:

org.hibernate.MappingException: An AnnotationConfiguration instance is required to use <mapping clazz=“br.unifor.locadora.model.Genero”/>
at org.hibernate.cfg.Configuration.parseMappingElement(Configuration.java:1322)
at org.hibernate.cfg.Configuration.parseSessionFactory(Configuration.java:1284)
at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1266)
at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1233)
at org.hibernate.cfg.Configuration.configure(Configuration.java:1161)
at org.hibernate.cfg.Configuration.configure(Configuration.java:1147)
at br.unifor.locadora.hibernate.util.HibernateUtil.<clinit>(HibernateUtil.java:28)
at br.unifor.locadora.dao.GenericDAO.insert(GenericDAO.java:65)
at br.unifor.locadora.struts.action.GeneroAction.insert(GeneroAction.java:45)
at br.unifor.locadora.struts.action.GeneroAction.execute(GeneroAction.java:29)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:419)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
at java.lang.Thread.run(Thread.java:595)

Alguem pode me dar uma luz aew???
Vlw!!

to com o mesmo problema…

Cara, penei muito pra conseguir resolver esse problema, até que consegui fazer a mesma coisa de um jeitinho um pouco diferente.
De quebra, vai aí também uma classe para criar as tabelas com base nas classes. Funciona mto bem, desde que os POJOs tenham suas devidas anotações no padrão EJB3.

hibernate.cfg.xml

<?xml version="1.0" encoding="UTF-8"?> org.postgresql.Driver abc123 jdbc:postgresql://localhost/drec postgres org.hibernate.dialect.PostgreSQLDialect
<mapping class="br.cefetmt.drec.model.bean.Curso"/>

Curso.java
package br.cefetmt.drec.model.bean;

import javax.persistence.*;

@Entity
@Table(name=“curso”)
@SequenceGenerator(name=“SEQ_CURSO”,
sequenceName=“SEQ_CURSO”,
allocationSize = 1)
public class Curso {

@Id
@GeneratedValue(strategy=GenerationType.IDENTITY, generator="SEQ_CURSO")
private long id;
private String nome;

public Curso(){

}

public Curso(String nome){
    this.nome = nome;
}

public void finalize() throws Throwable {

}

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

public long getId() {
    return id;
}

public void setNome(String nome) {
    this.nome = nome;
}

public String getNome() {
    return nome;
}

}

CriarTabelas.java
package br.cefetmt.drec.model.util;

import org.hibernate.cfg.AnnotationConfiguration;
import org.hibernate.tool.hbm2ddl.SchemaExport;
import br.cefetmt.drec.model.bean.Curso;

public class CriarTabelas {

public static void main(String[] args) {

	// Cria uma configuração para a classe Produto
	AnnotationConfiguration cfg = new AnnotationConfiguration();
            cfg.addAnnotatedClass(Curso.class);
            new SchemaExport(cfg).create(true, true);
    }

}

CursoDAO.java
package br.cefetmt.drec.model.dao;

import java.util.List;

import org.hibernate.Session;
import org.hibernate.Criteria;
import org.hibernate.criterion.Expression;
import org.hibernate.criterion.Order;
import org.hibernate.criterion.Restrictions;

import br.cefetmt.drec.model.bean.Curso;
import br.cefetmt.drec.model.util.HibernateUtil;

public class CursoDAO {
Curso curso;

public CursoDAO() {
}

public void incluir(Curso c) {
    Session session = HibernateUtil.getSessionFactory().openSession();
    session.beginTransaction();
        session.save(c);
        session.getTransaction().commit(); 
}

    public void atualizar(Curso c) {
        Session session = HibernateUtil.getSessionFactory().openSession();
        session.beginTransaction();
        session.update(c);
        session.getTransaction().commit(); 
    }

public Curso getCursoById(Object id) {
    Criteria c = HibernateUtil
                    .getSessionFactory()
                    .openSession()
                    .createCriteria(Curso.class);
        c.add(Restrictions.idEq(id));
        return (Curso)c.uniqueResult();
}

public List getCursoByNome(String nomeCurso) {
    Criteria c = HibernateUtil
                    .getSessionFactory()
                    .openSession()
                    .createCriteria(Curso.class);
        nomeCurso = "%" + nomeCurso + "%";
        if (nomeCurso!=null) c.add(Expression.like("nome",nomeCurso));
        c.addOrder(Order.asc("id"));
        return c.list();
}	

public List listarTodos() {
    Criteria c = HibernateUtil
                        .getSessionFactory()
                        .openSession()
                        .createCriteria(Curso.class);
    c.addOrder(Order.asc("nome"));
        return c.list();
}	


public void excluir(Curso c) {
    Session session = HibernateUtil.getSessionFactory().openSession();
    session.beginTransaction();
    session.delete(c);
    session.getTransaction().commit(); 
}

}

TesteDAO.java
package br.cefetmt.drec.model.util;

import br.cefetmt.drec.model.bean.Curso;
import br.cefetmt.drec.model.dao.CursoDAO;

import java.util.List;

public class TesteDAO {
public TesteDAO() {
}

public static void main(String[] args) {
    CursoDAO cursoDAO = new CursoDAO();
    Curso curso = new Curso("Desenvolvimento de Sistemas Web");
    cursoDAO.incluir(curso);

    List lista = cursoDAO.getCursoByNome("web");
    for (int x = 0; x < lista.size(); x++) {
        Curso c = (Curso) lista.get(x);
        System.out.println(c.getId() + "-" + c.getNome());
    }
}

}

HibernateUtil.java

package br.cefetmt.drec.model.util;

import org.hibernate.;
import org.hibernate.cfg.
;

public class HibernateUtil {

private static SessionFactory sessionFactory;

static {
    try {
        // Create the SessionFactory from hibernate.cfg.xml
        sessionFactory = new AnnotationConfiguration()
                                .configure()
                                .buildSessionFactory();
    } catch (Throwable ex) {
        // Make sure you log the exception, as it might be swallowed
        System.err.println("Initial SessionFactory creation failed." + ex);
        throw new ExceptionInInitializerError(ex);
    }
}

public static SessionFactory getSessionFactory() {
    if(sessionFactory == null){
        try {
            // Create the SessionFactory from hibernate.cfg.xml
            sessionFactory = new AnnotationConfiguration()
                                    .configure()
                                    .buildSessionFactory();
        } catch (Throwable ex) {
            // Make sure you log the exception, as it might be swallowed
            System.err.println("Initial SessionFactory creation failed." + ex);
            throw new ExceptionInInitializerError(ex);
        }
        
    }
    return sessionFactory;
}

}

o HibernateUtil tem q ser alterado para usar Annotações igual esse que o muldon postou.

Ainda nao consegui sair desse erro, alguem tem alguma solucao ? Ja tentamos de tudo aqui na empresa, o padrao de annotations esta conforme a especificacao ejb3… help please !

Em que parte do código está ocorrendo o erro ??

Abraço.

Tentei executar o exemplo do Heitorr, mas está ocorrendo o mesmo erro que obtive com outros exemplos:


Initial SessionFactory creation failed.java.lang.NoClassDefFoundError: org/hibernate/cfg/QuerySecondPass
Exception in thread “main” java.lang.ExceptionInInitializerError
at annotations.HibernateUtil.(HibernateUtil.java:19)
at annotations.CursoDAO.incluir(CursoDAO.java:19)
at annotations.TesteDAO.main(TesteDAO.java:13)
Caused by: java.lang.NoClassDefFoundError: org/hibernate/cfg/QuerySecondPass
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
at java.net.URLClassLoader.access$100(URLClassLoader.java:56)
at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:268)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
at org.hibernate.cfg.annotations.QueryBinder.bindSqlResultsetMapping(QueryBinder.java:295)
at org.hibernate.cfg.AnnotationBinder.bindQueries(AnnotationBinder.java:239)
at org.hibernate.cfg.AnnotationBinder.bindClass(AnnotationBinder.java:404)
at org.hibernate.cfg.AnnotationConfiguration.processArtifactsOfType(AnnotationConfiguration.java:452)
at org.hibernate.cfg.AnnotationConfiguration.secondPassCompile(AnnotationConfiguration.java:268)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1146)
at annotations.HibernateUtil.(HibernateUtil.java:13)
… 2 more
Java Result: 1

Alguém já passou por isso?

[quote=gustavodelgado]Tentei executar o exemplo do Heitorr, mas está ocorrendo o mesmo erro que obtive com outros exemplos:


Initial SessionFactory creation failed.java.lang.NoClassDefFoundError: org/hibernate/cfg/QuerySecondPass
Exception in thread “main” java.lang.ExceptionInInitializerError
at annotations.HibernateUtil.(HibernateUtil.java:19)
at annotations.CursoDAO.incluir(CursoDAO.java:19)
at annotations.TesteDAO.main(TesteDAO.java:13)
Caused by: java.lang.NoClassDefFoundError: org/hibernate/cfg/QuerySecondPass
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
at java.net.URLClassLoader.access$100(URLClassLoader.java:56)
at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:268)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
at org.hibernate.cfg.annotations.QueryBinder.bindSqlResultsetMapping(QueryBinder.java:295)
at org.hibernate.cfg.AnnotationBinder.bindQueries(AnnotationBinder.java:239)
at org.hibernate.cfg.AnnotationBinder.bindClass(AnnotationBinder.java:404)
at org.hibernate.cfg.AnnotationConfiguration.processArtifactsOfType(AnnotationConfiguration.java:452)
at org.hibernate.cfg.AnnotationConfiguration.secondPassCompile(AnnotationConfiguration.java:268)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1146)
at annotations.HibernateUtil.(HibernateUtil.java:13)
… 2 more
Java Result: 1

Alguém já passou por isso?[/quote]

em qual linha do seu HibernateUtil deu erro???

nao tá faltando algum jar ai no classpath nao???

Tente fazer o seguinte trocar de Configuration para AnnotationConfiguration

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

valew!

Aqui resolveu :lol:

Valeu!

O meu funcionou com a dica do Skull:

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

Ta dando o mesmo erro quando uso o Configuration, quando eu uso o AnnotationConfiguration ele conecta ao bd mas não gera minha tabela.

Consegui resolver este problema baixando as libs deste link: https://code.google.com/p/sistema-vendas-java/downloads/detail?name=Libs.zip&can=2&q=
Removi as libs que tinha do hibernate, instalei estas e parou de dar o erro.

As libs do hibernate que vem no netbeans são um lixo. “Sempre vai da pau…” Dependendo do tutorial em que vc está seguindo… Eu uso sempre versões 4.4.11.Final ou 5.1.5.Final. Depois de baixar os arquivos .ZIP abra-os e dentro dele vc vai achar uma pasta lib, abra essa pasta e vai ver que tem outras pastas… Vamos utilizar apenas(para um projeto HIPER-BÁSICO) as seguintes “jpa” , “jpa-metamodel-generator” e “required” entre nessas pastas e passe cada .jar para as bibliotecas de seu projeto. Além disso, um projeto Hibernate tem que ter uma pasta dentro do “src”(Eclipse) ou “Pacotes de Códigos-fonte”(Netbeans) chamada META-INF e dentro o seu “persistence.xml”… Além disso quando for criar o EntityManagerFactory fabricanteDeGerenciadoresDeEntidades = Persistence.createEntityManagerFactory(“HibernatePU”); Esse nome “HibernatePU” que você passou no parêmetro do método tem que ser igual ao nome do seu aquivo persistece.xml (para descobrir o nome do seu persistence.xml, abra o seu persistence.xml que está dentro do META-INF vá no código desse arquivo e veja a seguinte tab < persistence-unit name=“HibernatePU” transaction-type=“RESOURCE_LOCAL” o nome tem que ser igual ao que está em 'name=“HibernatePU” ')… UMA EXCELENTE ALTERNATIVA para quem usa o netbeans é ao invés de utilizar as bibliotecas do hibernate que o netbeans disponibiliza… Use outra que o netbeans disponibiliza chamada EclipseLink(JPA 2.1) que substitui o hibernate e você não terá nenhum problema com os tutoriais!
Um excelente Tutorial para resolver o seus problemas utilizando uma das duas versões de hibernate que eu falei no inicio do post é esse https://www.youtube.com/watch?v=EobNP0fSTP8 Esse cara ainda disponibiliza o projeto dele super simples para vc baixar NÃO TEM ERRO!! Para importar o projeto .Zip (no eclipse, se quiser no netbeans ache um tutorial no youtube, mas deve ser parecido com que eu vou falar aqui) Vá em File -> Import -> General -> Existing Projects Into Workspace -> Marque a bolinha “Select Archive File” -> Browse -> Selecione o .Zip e finalize apertando todos os “Ok” que aparecerem… Espero que consiga resolver os problemas de vocês com esse post… Valew galera abraço!