Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Entity ou Table

Dentro da anotação @Entity temos o parâmetro (name = ""), qual a diferença desse para o @Table(Name = "")?

2 respostas
solução!

Oi Victor,

O name da anotação @Table se refere ao nome da tabela no banco de dados.

Já o name da anotação @Entity se refere ao nome da entidade no Java, que deve ser utilizado em consultas jpql. Exemplo:

@Entity
public class Pessoa { 
    //...
}
SELECT p FROM Pessoa p;

Na querie JPQL é indicado o nome da entidade(mesmo nome da classe). Mas se por acaso você precisar renomear essa classe:

@Entity
public class PessoaFisica { 
    //...
}

A consulta anterior vai dar erro, pois o nome da classe mudou e você terá que alterar em todas as consultas para o novo nome da classe. Para evitar esse problema você pode colocar o name na anotação @Entity, utilizando esse name nas consultas e não mais o nome da classe.

Bons estudos!

Entendi, ótima explicação, muito obrigado!