Erro Hibernate Annotation

2 respostas
filipeandrep

Pessoal estou com o seguinte problema. Estou utilizando em uma aplicação o recurso de hibernate com annotations. Entretanto quando eu rodo o script é gerada a seguinte excessão:

org.hibernate.MappingException: An AnnotationConfiguration instance is required to use <mapping class="br.com.inca.rcbp.bean.Categoria"/>

segue o codigo das classes utilizadas:

package br.com.inca.rcbp.bean;

import java.util.HashSet;
import java.util.Set;

import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.OneToMany;

@Entity
public class Categoria {
	 
	@Id
	@GeneratedValue(strategy = GenerationType.SEQUENCE)
	private int idCategoria;
	private String identificadorCategoria;
	private String descricaoCategoria;
	private Set<RCBP> rcbps = new HashSet<RCBP>();

	public String getDescricaoCategoria() {
		return descricaoCategoria;
	}

	public void setDescricaoCategoria(String descricaoCategoria) {
		this.descricaoCategoria = descricaoCategoria;
	}

	public int getIdCategoria() {
		return idCategoria;
	}

	public void setIdCategoria(int idCategoria) {
		this.idCategoria = idCategoria;
	}

	public String getIdentificadorCategoria() {
		return identificadorCategoria;
	}

	public void setIdentificadorCategoria(String identificadorCategoria) {
		this.identificadorCategoria = identificadorCategoria;
	}
	@OneToMany(mappedBy="categoria", cascade=CascadeType.REMOVE, fetch=FetchType.LAZY)
	public Set<RCBP>getRcbps() {
		return rcbps;
	}

	public void setRcbps(Set <RCBP>rcbps) {
		this.rcbps = rcbps;
	}
	 
}
package br.com.inca.rcbp.dao;

import java.util.ArrayList;

import org.apache.log4j.Logger;
import org.hibernate.Criteria;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;

public class Dao<T> {
	Session session;

	private static Logger log = Logger.getLogger(Dao.class);

	public Dao() throws Exception{
		try{
			SessionFactory sf = new Configuration().configure("hibernate.cfg.xml").buildSessionFactory();
			log.debug(sf);
			this.session = sf.openSession();
		}catch(Exception e){
			log.fatal(e);
		}
	}

	public void inserirAtualizar(Object obj) throws Exception {
		try{
			Transaction tx = session.beginTransaction();
			session.saveOrUpdate(obj);
			log.debug(obj);
			tx.commit();
			session.close();
		}catch(Exception e){
			log.fatal(e);
		}
	}

	public void excluir(Object obj) throws Exception {
		try{
			Transaction tx = session.beginTransaction();
			session.delete(obj);
			log.debug(obj);
			tx.commit();
			session.close();
		}catch(Exception e){
			log.fatal(e);
		}
	}
}
hibernate.cfg.xml
<?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>
    <!-- a SessionFactory instance listed as /jndi/name -->
    <session-factory name="java:comp/env/hibernate/SessionFactory">

        <!-- properties -->
        <property name="connection.driver_class">
            org.postgresql.Driver
        </property>
	    <property name="connection.url">
            jdbc:postgresql://192.168.0.26:5432/conprev
        </property>
        <property name="dialect">
            org.hibernate.dialect.PostgreSQLDialect
        </property>
        <property name="show_sql">true</property>
        <property name="connection.username">postgres</property>
        <property name="connection.password">postgres</property>
	    <property name="connection.pool_size">10</property>
        <!-- mapping files -->
      	<mapping class="br.com.inca.rcbp.bean.Categoria" />
    </session-factory>
</hibernate-configuration>

2 Respostas

Jair_Rillo_Junior

Ola Filipe

Pelo erro e pela rápida olhada que eu dei no seu código, você deve mudar o segiunte

  • No seu DAO, quando for criar o SessionFactory, ao invés de criar usando a classe Configuration, use a classe AnnotationConfiguration(), algo assim

Acredito que com isso irá funcionar, ou então a exception será outra :wink:

filipeandrep

Muito obrigado! era isso mesmo.

Criado 9 de maio de 2007
Ultima resposta 9 de mai. de 2007
Respostas 2
Participantes 2