Annotations Many to Many

Galera nao estou conseguindo fazer um relacionamento manyTomany mapeando com o hibernate, meu codigo esta assim

Relacionamento de Pessoa e Perfil

Na minha classe Pessoa estou fazendo assim:

@ManyToMany(targetEntity=com.corp.bean.Perfil.class,mappedBy="Perfil")
	@JoinTable(   
            name="Pessoa_has_perfil",   
            joinColumns=@JoinColumn(name="pessoa_id_pessoa", referencedColumnName="id_pessoa"),   
            inverseJoinColumns=@JoinColumn(name="perfil_id_perfil", referencedColumnName="id_perfil")   
        )  
	private Collection<Perfil> perfil;

O erro que esta dando é esse:

org.hibernate.AnnotationException: Use of @OneToMany or @ManyToMany targeting an unmapped class: com.corp.bean.Pessoa.perfil[com.corp.bean.Perfil]
	at org.hibernate.cfg.annotations.CollectionBinder.bindManyToManySecondPass(CollectionBinder.java:1068)
	at org.hibernate.cfg.annotations.CollectionBinder.bindStarToManySecondPass(CollectionBinder.java:600)
	at org.hibernate.cfg.annotations.CollectionBinder$1.secondPass(CollectionBinder.java:541)
	at org.hibernate.cfg.CollectionSecondPass.doSecondPass(CollectionSecondPass.java:43)
	at org.hibernate.cfg.Configuration.secondPassCompile(Configuration.java:1136)
	at org.hibernate.cfg.AnnotationConfiguration.secondPassCompile(AnnotationConfiguration.java:324)
	at org.hibernate.cfg.Configuration.generateDropSchemaScript(Configuration.java:762)
	at org.hibernate.tool.hbm2ddl.SchemaExport.<init>(SchemaExport.java:93)
	at org.hibernate.tool.hbm2ddl.SchemaExport.<init>(SchemaExport.java:61)
	at testes.GeraTabelas.create(GeraTabelas.java:11)
	at testes.GeraTabelas.main(GeraTabelas.java:18)

O que devo fazer para resolver esse problema?

Cara… a classe Perfil tá mapeada?

Desde ja agradeco a atencao(y)

Vou postar meu codigo para vc dar uma olhada

Perfil.class

@Entity
@Table(name = "perfil")
public class Perfil implements Serializable{

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	@Id    
    @GeneratedValue(strategy=GenerationType.SEQUENCE)
    @Column(name = "id_perfil", unique=true)
	private Integer idPerfil;
	
	@Column(name = "nmPerfil", unique=true, length=30)
	private String nmPerfil;

gets e sets

Pessoa.class

@Entity
@Table(name = "pessoa")
public class Pessoa implements Serializable{

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	@Id    
    @GeneratedValue(strategy=GenerationType.SEQUENCE)
    @Column(name = "id_pessoa", unique=true)
	private Integer idPessoa;
	
	@Column(name = "nm_pessoa", unique=true, length=50)
	private String nmPessoa;
	
	@Column(name = "rg_ie", unique=true, length=11)
	private String rgIe;
	
	@Column(name = "cpf_cnpj", unique=true, length=18)
	private String cpfCnpj;
	
	@ManyToMany(fetch=FetchType.LAZY,mappedBy="Perfil",targetEntity=Perfil.class)
	@JoinTable(name="perfil",joinColumns={@JoinColumn(name="id_perfil")})   
	public Set<Perfil> perfil = new HashSet<Perfil>();  
gets e sets

HibernateFactory.class

public class HibernateFactory {

    private static SessionFactory factory;

    static {
        AnnotationConfiguration cfg = new AnnotationConfiguration();
        
       cfg.addAnnotatedClass(Pessoa.class);
       cfg.addAnnotatedClass(Perfil.class);       
        
        factory = cfg.buildSessionFactory();
     }
    
    public static Session getSession() {
        return factory.openSession();
    }
   
}
public class GeraTabelas {

	private static void create(AnnotationConfiguration cfg) {
		new SchemaExport(cfg).create(true, true);		
	}

	public static void main(String[] args){		
		AnnotationConfiguration cfg = new AnnotationConfiguration();
		
		try{	
			create(cfg.addAnnotatedClass(Pessoa.class));			
			create(cfg.addAnnotatedClass(Perfil.class));			
		}
		catch(Exception e){
			e.printStackTrace();
		}
	}
}

Faz o básico… O exemplo abaixo eu tirei de um sistema meu aqui… altere para a sua necessidade…

[code]
@Entity
@Table(name=“CAU_USUARIO”)
public class Usuario implements Serializable {

private static final long serialVersionUID = 4226469181963895540L;

@Id
@Column(name="ID_USUARIO")
private Long id;

//... Outros Atributos

@ManyToMany(mappedBy="usuarios")
private Set<Perfil> perfis;

//... acessores

}

@Entity
@Table(name=“CAU_PERFIL”)
public class Perfil implements Serializable {

private static final long serialVersionUID = -7100910186111699361L;

@Id
@Column(name="ID_PERFIL")
private Long id;

//... Outros Atributos

@ManyToMany
@JoinTable(name="CAU_USUARIO_PERFIL",
	joinColumns=@JoinColumn(name="ID_PERFIL"),
	inverseJoinColumns=@JoinColumn(name="ID_USUARIO"))
private Set<Usuario> usuarios;

//... acessores

}[/code]

Fiz o que vc falou porem ainda continua dando erro

Pessoa.class

@ManyToMany(mappedBy="pessoa")
	private Set<Perfil> perfil;

Perfil.class

@ManyToMany
	@JoinTable(name="pessoa_has_perfil",joinColumns=@JoinColumn(name="id_perfil"),inverseJoinColumns=@JoinColumn(name="id_pessoa"))
	private Set<Pessoa> pessoa;

Erro

Use of @OneToMany or @ManyToMany targeting an unmapped class: com.corp.bean.Pessoa.perfil[com.corp.bean.Perfil]
	at org.hibernate.cfg.annotations.CollectionBinder.bindManyToManySecondPass(CollectionBinder.java:1068)
	at org.hibernate.cfg.annotations.CollectionBinder.bindStarToManySecondPass(CollectionBinder.java:600)
	at org.hibernate.cfg.annotations.CollectionBinder$1.secondPass(CollectionBinder.java:541)
	at org.hibernate.cfg.CollectionSecondPass.doSecondPass(CollectionSecondPass.java:43)
	at org.hibernate.cfg.Configuration.secondPassCompile(Configuration.java:1136)
	at org.hibernate.cfg.AnnotationConfiguration.secondPassCompile(AnnotationConfiguration.java:324)
	at org.hibernate.cfg.Configuration.generateDropSchemaScript(Configuration.java:762)
	at org.hibernate.tool.hbm2ddl.SchemaExport.<init>(SchemaExport.java:93)
	at org.hibernate.tool.hbm2ddl.SchemaExport.<init>(SchemaExport.java:61)
	at testes.GeraTabelas.create(GeraTabelas.java:11)
	at testes.GeraTabelas.main(GeraTabelas.java:18)