Pessoal,
Ao invés de utilizar @JoinColumn, não bastaria apenas utlizar @Column( name= Nome_Da_Tabela_NO_Banco) ?
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!