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

Tabela de UsuarioPerfis customizada

Lendo os tópicos resolvidos (é sempre bom para aprender mais :-) ) vi uma pergunta sobre uma tabela de UsuariosPerfis que não estava sendo reconhecida pelo JPA. O problema é que a tabela de relacionamento não estava no padrão usado pelo JPA, de concatenar o nome da tabela (" t_usuarios_api") e o nome da propriedade ("perfis"), ficando o nome da tabela de relacionamento "t_usuarios_api_perfis".

Pesquisei mais um pouco e vi que, se a gente quiser manter o nome da tabela já criada, podemos usar a anotação @JoinTable para indicar ao JPA os nomes de tabela e colunas que queremos usar. Basta colocar na classe de Usuario:

@ManyToMany
@JoinTable(
  name = "t_usuarios_perfis", 
  joinColumns = @JoinColumn(name = "COD_USUARIO"), 
  inverseJoinColumns = @JoinColumn(name = "SEQ_PERFIL"))
Set<Perfil> perfis;

E se quisermos (apesar de nesse caso não ver muito sentido) na tabela de Perfil podemos fazer o relacionamento reverso:

@ManyToMany(mappedBy = "perfis")
Set<Usuario> usuarios;

Referência: https://www.baeldung.com/jpa-many-to-many

1 resposta
solução!

Oi Leonardo,

Isso mesmo, esse é o padrão da JPA, que segue a ideia de COC(Convention Over Configuration), tendo alguns padrões pré-definidos e que podemos sobrescrever quando necessário.

Bons estudos!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software