terça-feira, 6 de fevereiro de 2018

Many To Many de uma maneira simples no JPA

Fala galera, hoje vou mostrar para vocês como implementar uma relação muitos para muitos
no JPA de uma maneira simples de entender, criei um projeto onde temos uma relação many to many
entre duas tabelas, sendo elas: POST e TAG, onde será necessário criar uma tabela associativa
POST_TAG, segue a lógica: O post pode ter várias tags e vice versa.



O segredo está na hora de mapear as classes, a entidade  associativa post_tag, não precisa ser criada
no JPA, para tal utilizamos uma anotação chamada @JoinTable


Como  podemos observar precisamos anotar a nossa coleção com @ManyToMany e
em seguida precisamos da nossa tabela associativa, que é feita através da anotação @JoinTable
que recebe como atributo joinColumns um array de @JoinColumn, onde devemos declarar
de forma explicita o atributo da entidade, no caso tag_id, pois eu estava dentro da classe Tag
e precisamos informar a coluna de relação, no caso inverseJoinColumn, que é referenciada
no array inverseJoinColumns, está pronta nossa tabela de associação, mas e a outra ponta da
relação? como fica? Segue:



Não há necessidade de mapear as duas pontas da relação, para isso utilizaremos o atributo mappedBy
na outra ponta da relação, ou seja, na classe Post,  informaremos o nome do atributo da outra classe 
fazendo assim nossa relação.

Bom,  por hoje é só.

Segue o link do projeto completo no github, enjoy :)

Nenhum comentário:

Postar um comentário