Pessoal,
Ao invés de utilizar @JoinColumn, não bastaria apenas utlizar @Column( name= Nome_Da_Tabela_NO_Banco) ?
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Pessoal,
Ao invés de utilizar @JoinColumn, não bastaria apenas utlizar @Column( name= Nome_Da_Tabela_NO_Banco) ?
Oi Thiago, tudo bem?
Lembra que no relacionamento Many-to-many, a JPA vai criar uma tabela pra mapear os ids de ambas entidades? Então por isso, não podemos usar @JoinColumn, ok? Nesse caso, o certo seria utilizar o @JoinTable.
Agora, pegando o gancho da sua pergunta, por que será que não podemos utilizar @Table em vez de @JoinTable? Vamos investigar na documentação:
@Table:
Specifies the primary table for the annotated entity...http://docs.oracle.com/javaee/6/api/javax/persistence/Table.html
@JoinTable:
Used in the mapping of associations...http://docs.oracle.com/javaee/6/api/javax/persistence/JoinTable.html
Quando a JPA cria as tabelas para nossas entidades, ela usa o nome da classe para criar as tabelas. Se quisermos um nome diferente, precisamos usar a anotação @Table.
Por outro lado se o mapeamento for de um relacionamento (uma associação), ele cria a tabela de relacionamento usando o nome das duas entidades envolvidas. Para trocar esse nome, usamos a anotação @JoinTable.
Abraços!