(Hibernate - Banco de Dados) Dúvida Mapeamento com Anotações[RESOLVIDO]
4 respostas
B
brluan
Boa Tarde Pessoal tenho uma grande dúvida sobre mapeamento e associações no hibernate, segue minha dúvida:
Suponhamos que eu tenha três tabelas:
TABELA FEIJAO
----> ID
----> TIPO
TABELA MARCA
—> ID
—> NOME_MARCA
TABELA FEIJAO_MARCA
----> ID
----> ID_FEIJAO
----> ID_MARCA
----> DATA
Nestes Casos como ficaria o mapeamento no hibernate? Como a tabela FEIJAO_MARCA possui 2 atributos fora os IDS, que seria o ID da tabela e a DATA seria criado uma classe específica para FeijaoMarca e os ids “ID_FEIJAO” e “ID_MARCA” virariam chaves compostas?
@Entity@Table(name="feijao")publicclassFeijaoimplementsSerializable{@Id@GeneratedValue@Column(name="id_feijao)private Integer feijao;@Column(name ="tipo")private String tipo;@Column(name="data")private Date data;//Mapeamentos muitos para muitos@ManyToMany // o JoinTable indica qual a tabela que faz a relacionamento. O JoinsColumns e Inverse indica as chave primaria das tabelas@JoinTable(name ="feijao_marca", joinColumns = {@JoinColumn(name ="id_marca")}, inverseJoinColumns = {@JoinColum(name="id_feijao")})}
Jardel Obrigado isso é mais ou menos o que eu já pensava mais tipo a minha situação é a seguinte:
Todo Feijão Pode ter mais de uma marca por esse motivo eu coloquei que haveria o ID na tabela de FEIJAO_MARCA por que eu queria diferenciar os dados na tabela de FEIJAO_MARCA pelo id, mais pelo que vejo a solução seria pegar o id_marca e id_feijão e fazer uma chave composta?
JARDEL_RODRIGUES
brluan:
Jardel Obrigado isso é mais ou menos o que eu já pensava mais tipo a minha situação é a seguinte:
Todo Feijão Pode ter mais de uma marca por esse motivo eu coloquei que haveria o ID na tabela de FEIJAO_MARCA por que eu queria diferenciar os dados na tabela de FEIJAO_MARCA pelo id, mais pelo que vejo a solução seria pegar o id_marca e id_feijão e fazer uma chave composta?
Por isso o mapeamento de Muitos para Muitos @ManytoMany, pois um feijão pode ter mas de uma marca.
Na chave composta voce teria a primary key de feijao e marca.
B
brluan
Jardel meus grande agradecimento por você me ajudar eu ainda não conseguia compreender o motivo que em todos os exemplos a tabela de relação many-to-many não possuía um id, agora esta bem esclarecido e minha dor de cabeça com o mapeamento vai diminuir muito já que a minha maior dificuldade ainda são as associações, Agradecido mesmo. Mais uma vez muito obrigado.