Pessoal…
Estou tentando fazer o relacionamento de muitos pra muitos…
Muitas Empresas tem Muitos Telefones…
Estou com o seguinte erro:
Exception in thread "main" org.hibernate.AnnotationException: Use of @OneToMany or @ManyToMany targeting an unmapped class: modelo.Empresa.telefones[modelo.Telefone]
at org.hibernate.cfg.annotations.CollectionBinder.bindManyToManySecondPass(CollectionBinder.java:1033)
at org.hibernate.cfg.annotations.CollectionBinder.bindStarToManySecondPass(CollectionBinder.java:576)
at org.hibernate.cfg.annotations.CollectionBinder$1.secondPass(CollectionBinder.java:517)
at org.hibernate.cfg.CollectionSecondPass.doSecondPass(CollectionSecondPass.java:43)
at org.hibernate.cfg.Configuration.secondPassCompile(Configuration.java:1130)
at org.hibernate.cfg.AnnotationConfiguration.secondPassCompile(AnnotationConfiguration.java:316)
at org.hibernate.cfg.Configuration.generateDropSchemaScript(Configuration.java:756)
at org.hibernate.tool.hbm2ddl.SchemaExport.<init>(SchemaExport.java:93)
at org.hibernate.tool.hbm2ddl.SchemaExport.<init>(SchemaExport.java:61)
at hibernate.TabelasFactory.create(TabelasFactory.java:9)
at hibernate.TabelasFactory.main(TabelasFactory.java:16)
Minha Classe Telefone:
[code]package modelo;
import java.io.Serializable;
import java.util.Collection;
import javax.persistence.Column;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.ManyToMany;
import javax.persistence.Table;
import org.hibernate.annotations.Entity;
@Entity //Anotação que informa que esta classe é de persistência
@Table(name=“telefone”, schema=“nolugar”) //Anotação que informa a tabela e esquema mapeada
public class Telefone implements Serializable{
private static final long serialVersionUID = 1L;
@Id //Definição da chave primária
@GeneratedValue(strategy = GenerationType.IDENTITY) //Definição do mecanismo da chave primária
@Column(name="idtelefone") //Definição da coluna mapeada para o atributo
private int idTelefone;
@Column(name="telefone")
private String telefone;
@ManyToMany(fetch=FetchType.LAZY)
@JoinTable(name="empresa_telefone", schema="nolugar",
joinColumns=@JoinColumn(name="idtelefone"),
inverseJoinColumns=@JoinColumn(name="idempresa"))
private Collection<Empresa> empresas;
public Collection<Empresa> getEmpresas() {
return empresas;
}
public void setEmpresas(Collection<Empresa> empresas) {
this.empresas = empresas;
}
public int getIdTelefone() {
return idTelefone;
}
public void setIdTelefone(int idTelefone) {
this.idTelefone = idTelefone;
}
public String getTelefone() {
return telefone;
}
public void setTelefone(String telefone) {
this.telefone = telefone;
}
}[/code]
Minha Classe Empresa:
[code]package modelo;
import java.io.Serializable;
import java.sql.Blob;
import java.util.Collection;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.ManyToMany;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import org.hibernate.annotations.Cascade;
import org.hibernate.annotations.CascadeType;
import org.hibernate.annotations.Fetch;
import org.hibernate.annotations.FetchMode;
@Entity //Anotação que informa que esta classe é de persistência
@Table(name=“empresa”, schema=“nolugar”) //Anotação que informa a tabela e esquema mapeada
public class Empresa implements Serializable {
private static final long serialVersionUID = 1L;
@Id //Definição da chave primária
@GeneratedValue(strategy = GenerationType.IDENTITY) //Definição do mecanismo da chave primária
@Column(name="idempresa") //Definição da coluna mapeada para o atributo
private int idEmpresa;
@ManyToMany(fetch=FetchType.LAZY)
@JoinTable(name="empresa_telefone", schema="nolugar",
joinColumns=@JoinColumn(name="idempresa"),
inverseJoinColumns=@JoinColumn(name="idtelefone"))
private Collection<Telefone> telefones;
public int getIdEmpresa() {
return idEmpresa;
}
public void setIdEmpresa(int idEmpresa) {
this.idEmpresa = idEmpresa;
}
public Collection<Telefone> getTelefones() {
return telefones;
}
public void setTelefones(Collection<Telefone> telefones) {
this.telefones = telefones;
}
}[/code]
Meu gerador de tabelas:
[code]package hibernate;
import org.hibernate.cfg.AnnotationConfiguration;
import org.hibernate.tool.hbm2ddl.SchemaExport;
public class TabelasFactory {
public static void create(AnnotationConfiguration cfg) {
new SchemaExport(cfg).create(false, true);
}
public static void main(String[] args) {
AnnotationConfiguration cfg = new AnnotationConfiguration();
cfg.addAnnotatedClass(modelo.Empresa.class);
cfg.addAnnotatedClass(modelo.Telefone.class);
create(cfg);
}
} [/code]
Meu hibernate.cfg.xml
[code]<?xml version="1.0" encoding="utf-8"?>
<property name="connection.driver_class">
com.mysql.jdbc.Driver
</property>
<property name="connection.url">
jdbc:mysql://localhost/noLugar
</property>
<property name="dialect">
org.hibernate.dialect.MySQLDialect
</property>
<property name="show_sql">true</property>
<property name="connection.username">root</property>
<property name="connection.password">123</property>
<property name="connection.pool_size">10</property>
<!-- mapping classes -->
<mapping class="modelo.Empresa" />
<mapping class="modelo.Telefone" />
</session-factory>
[/code]
Alguem saberia me indicar qual o possível erro?