Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Duvida sobre relacionamento.

Boa tarde, eu ja fiz os cursos da alura, e fiquei vago o assunto de relacionamento, agora to lendo uns livro de java que tudo está se encaixando, juntei muita mais muita coisa do curso com o livro, igual relacionamento onetoone manytoone onetomany, uma duvida que eu tenho, a unica que restou, li no livro, que no banco de dados relacional não é possivel um atributo List, levar a chave estrangeira de outra tabela correto?

Ai vem uma duvida minha, igual que tem no livro, e não entendi direito.

5.17 Relacionamentos muitos para muitos com o @ManyT oMany Osautomóveisvendidosnalojapodemteritensopcionais,comoarcondicionado, limpador traseiro e assim por diante. Muitos desses opcionais estão presentes em diferentescarros, demodoqueprecisamosrelacionaressasinformações, oquecaracterizaumrelacionamentomuitosparamuitos. Justamenteparaessetipodesituação,aJPApossuiaanotação @ManyToMany, quevamosusarpararelacionar Automovele Opcional:

@Entity public class Automovel {
110
CasadoCódigo Capítulo5. Comomapeartudo...ounada!
@Id @GeneratedValue private Integer id;
@ManyToMany private List<Opcional> opcionais;
}

@Entity public class Opcional {
@Id @GeneratedValue private Integer id;
private String descricao;
@ManyToMany(mappedBy="opcionais") private List<Automovel> automoveis;
}

Aqui que vem minha duvida, aqui o meu JPA automaticamente irá criar uma tabela no banco de dados, algo como Automovel_Opcional correto? Que seria o relacionamento do meu id do automovel e o id do opcional. Até ai tudo bem. Como disse no começo, não é possivel um List levar a chave estrangeira, e o relacionamento dessas tabelas é bidiricional, usamos a opção mappedBy, na classe que não queremos que levamos a chave estrangeira, e "ligamos" com o atributo da outra tabela, assim sendo o mappedBy está na tabela Opcinal, no livro fala que a minha classe Automovel está levando a chave estrangeira, mais como levar se é do tipo List? Aqui ngm está levando chave de ngm não é? JPA cria uma tabela para essa tabela levar as chaves estrangeiras, não seria isso? Porque no livro fala que a classe automovel está levando a chave

1 resposta
solução!

Oi Alisson, fiquei com uma certa dúvida sobre o texto porque muitas palavras vieram sem espaço, complicando um pouco o entendimento.

De todo jeito, o que precisa ficar claro é que a implementação da JPA, hibernate por exemplo, simplesmente pega seu mapeamento de classes e tenta transformar para um mapeamento de tabelas no banco de dados relacional. Então realmente não existe tal coisa como uma tabela leva um atributo list ou algo assim...