Pessoal, estou fazendo um exemplo simples de Hibernate aqui, mas não consigo resolver a dúvida de como fazer a tabela intermediária da relação Muitos x Muitos ser preenchida.
Um Jogador TEM UMA OU MAIS marcas de Chuteiras
Uma marca de Chuteira É DE UM OU MAIS Jogadores.
O clássico exemplo do Muitos para Muitos.
Fiz o mapeamento, usando Annotations e ele até criou a tabela no banco de dados, mas quando salvo os objetos a tabela intermediária JOGADOR_CHUTEIRA não é preenchida, as outras (Jogador e Chuteira) são.
Como fazer isso? (Usando Annotations, por favor)
@Entity
public class Chuteira {
@Id
@GeneratedValue
private int id;
private String marca;
@OneToMany
private List<Jogador> jogador;
//getters e setters
@Entity
public class Jogador {
@Id
@GeneratedValue
private int idJogador;
private String nome;
private int idade;
@OneToMany
private List<Chuteira> chuteira;
//getters e setters
Ele cria tabela (fazendo a junção do id das duas certinho, mas não preenche).
É verdade Arthur, e eu fiz isso, mas mesmo assim a tabela intermediária criada automaticamente por ele (usando aquele SchemaExport) não é preenchida quando salvo os objetos.
Quer dizer então que eu preciso criar também uma classe da tabela intermediária (a que quebra os ManyXMany)?
exemplo. tenho um manytomany entre perfil e usuario. ao salvar um usuario vejo o que eu faço
clear();
GUsuario usuarioAdd = (GUsuario) getSession().get(GUsuario.class, codUsuario);
/*Gravamdo as permissoes*/
for (int i = 0; i < codPerfil.length; i++) {
GPerfil perfil = (GPerfil) getSession().get(GPerfil.class, codPerfil[i]);
perfil.getUsuarios().add(usuarioAdd);//<<<<<<pega a lista na classe e adiciona. Essa lista tem que ter algo
salvarOuAlterar(perfil);
}