Erro de mapeamento com hibernate annotations

Pessoal preciso da ajuda de vcs.

Estou tendo problemas ao tentar iniciar uma sessão com o hibernate utilizando annotations. Ao executar um teste pra saber se está tudo correto aparece este erro: [color=red]Exception in thread “main” org.hibernate.AnnotationException: Illegal attempt to map a non collection as a @OneToMany, @ManyToMany or @CollectionOfElements: Modelo.SerieDadosPib.dadosPibSerie[/color]

A pergunta é: Esqueci de algo ?

Abaixo estão as classes já anotadas e o código do programa principal. Tou fazendo a configuração no código pq vou ter que utilizar uma base de dados access pra uma aplicação pequena. Me ajudem aew pessoal, pq senão vou ter que voltar pro velho jdbc.

Valew


package Modelo;

import java.io.Serializable;
import java.util.ArrayList;
import javax.persistence.*;


@Entity
public class SerieDadosPib 
implements Serializable
{	
	private Integer idSerieDadosPib;	 
	private String descricao;	 
	private ArrayList<DadoPib> dadosPibSerie;
	
	
	@Id
	@GeneratedValue
	public Integer getIdSerieDadosPib()
	{
		return idSerieDadosPib;
	}
	
	public void setIdSerieDadosPib(Integer idSerieDadosPib)
	{
		this.idSerieDadosPib = idSerieDadosPib;
	}
		
	public String getDescricao()
	{
		return descricao;
	}
	
	public void setDescricao(String descricao)
	{
		this.descricao = descricao;
	}
	
	
	@OneToMany(mappedBy="serieDadosPib", cascade={ CascadeType.REMOVE })		
	public ArrayList<DadoPib> getDadosPibSerie()
	{
		return dadosPibSerie;
	}
	
	public void setDadosPibSerie(ArrayList<DadoPib> dadosPibSerie)
	{
		this.dadosPibSerie = dadosPibSerie;
	}
}


package Modelo;

import java.io.Serializable;
import javax.persistence.*;


@Entity
public class DadoPib 
implements Serializable
{
	private Integer idDadoPib;
	private Integer ano;
	private Double valor;
	private SerieDadosPib serieDadosPib;
	
	@Id
	@GeneratedValue	
	public Integer getIdDadoPib()
	{
		return idDadoPib;
	}

	public void setIdDadoPib(Integer idDadoPib)
	{
		this.idDadoPib = idDadoPib;
	}
	
	public Integer getAno()
	{
		return ano;
	}

	public void setAno(Integer ano)
	{
		this.ano = ano;
	}
	
	public Double getValor()
	{
		return valor;
	}

	public void setValor(Double valor)
	{
		this.valor = valor;
	}

	@ManyToOne
	@JoinColumn(name="idSerieDadosPib")
	public SerieDadosPib getSerieDadosPib()
	{
		return serieDadosPib;
	}

	public void setSerieDadosPib(SerieDadosPib serieDadosPib)
	{
		this.serieDadosPib = serieDadosPib;
	}
}


package Utils;

import Modelo.DadoPib;
import Modelo.SerieDadosPib;
import java.util.ArrayList;
import org.hibernate.Session;
import org.hibernate.Transaction;
import org.hibernate.cfg.AnnotationConfiguration;

public class SessaoHibernate 
{	
	private Session session;
	private Transaction transaction;
	
	private static SessaoHibernate sessaoHibernate;	
	
	private SessaoHibernate()
	{
		String arquivoMdb = "C:\\Trabalho Sydney\\Software\\Fontes\\GraficoPIB\\db\\BaseDeDados.mdb";
				
		session = new AnnotationConfiguration()
							
			// Configurações para a conexão com o banco

			.setProperty("hibernate.connection.driver_class", "sun.jdbc.odbc.JdbcOdbcDriver")
			.setProperty("hibernate.connection.url", "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ="+arquivoMdb)
			.setProperty("hibernate.dialect", "com.hxtt.support.hibernate.HxttAccessDialect")
			// Configurações de mapeamento

			.addPackage("Modelo")
			.addAnnotatedClass(SerieDadosPib.class)	
			.addAnnotatedClass(DadoPib.class).configure().buildSessionFactory().openSession();
		
		
		//session = ac.buildSessionFactory().openSession();		
	}		

	// ... o resto da classe

}

E o programa principal


public static void main(String args[])
{
		
	SessaoHibernate sh = SessaoHibernate.getSessaoHibernate();
		
}

Bom de diferente ai só tenho o nome do mapeamento para a classe.

E o fato de você mapear o método, você tentou mapear o atributo?

linha:40
@OneToMany(mappedBy=“serieDadosPib”, cascade={ CascadeType.REMOVE })

linha:14
private SerieDadosPib serieDadosPib;

[quote=leonardocregis]Bom de diferente ai só tenho o nome do mapeamento para a classe.

E o fato de você mapear o método, você tentou mapear o atributo?

linha:40
@OneToMany(mappedBy=“serieDadosPib”, cascade={ CascadeType.REMOVE })

linha:14
private SerieDadosPib serieDadosPib;

[/quote]

cara, segundo o tutorial do hibernate, é pra mapear no método e não no atributo.

Tenta trocar o valor do parametro mappedBy pra “dadosPibSerie” que é o nome da sua variavel no Bean.

Não lembro direito se é assim, porque geralmente eu crio os Lists com o mesmo nome do objeto dai não preciso colocar o mappedBy.