Gente,
Estou mapeando duas classes: banda e fã. A banda pode ter vários fãs e o fã pode seguir várias bandas.
A seguir as classes:
Fã
[code]@Entity
@Table(name = “tb_fa”)
@NamedQueries({
@NamedQuery(name = “Fa.findByLogin”,
query = “SELECT u FROM Fa u WHERE lower(u.login) = :login order by u.id”),
@NamedQuery(name = “Fa.findAll”,
query = “SELECT u FROM Fa u order by u.id desc”) })
public class Fa extends Pessoa{
@Id
@Column(name="fa_id")
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;
@ManyToMany
@JoinTable(name="tb_fa_tb_banda",
joinColumns={@JoinColumn(name="fa_id")},
inverseJoinColumns={@JoinColumn(name="banda_id")}
)
private List<Banda> bandas;
private boolean isAdmin;
public Fa(){
bandas = new ArrayList<Banda>();
}
//gets e sets
}[/code]
Banda
[code]@Entity
@Table(name = “tb_banda”)
@NamedQueries({
@NamedQuery(name = “Banda.findByLogin”,
query = “SELECT u FROM Banda u WHERE lower(u.login) = :login order by u.id”),
@NamedQuery(name = “Banda.findAll”,
query = “SELECT u FROM Banda u order by u.id desc”) })
public class Banda extends Pessoa{
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;
private double mediaNota;
private String estiloMusical;
private String biografia;
private List<Fa> fas;
private String email;
private boolean isAdmin;
//gets e sets
}[/code]
Mas está dando um erro:
[color=red]A Foreign key refering fa.Fa from banda.Banda has the wrong number of column. should be 2[/color]
2011-07-14 23:24:35,225 DEBUG hibernate.cfg.CollectionSecondPass -> Mapped collection key: id, element: pecas_id
2011-07-14 23:24:35,225 DEBUG hibernate.cfg.CollectionSecondPass -> Second pass for collection: fa.Fa.bandas
2011-07-14 23:24:35,225 DEBUG cfg.annotations.CollectionBinder -> Binding as ManyToMany: fa.Fa.bandas
O que eu estou fazendo errado?