1
resposta

Qual diferença do @Table para @Entity?

Há um tempo ando vendo muita gente usando o @Table, neste curso me deparei que foi utilizado o @Entity, 1. existe alguma diferença entre eles? e 2. o que acontece se eu especificar @Table no lugar do @Entity?

Eu sei que:

Para dizer que uma classe é uma entidade de um banco de dados, demarcamos com @Entity. O uso da tag @Table é opcional e indica um nome para a tabela.

Mas porque alguns usam @Entity e outros @Table?

1 resposta

O @Table define a tabela no banco de dados, @Entity especifica ao JPA que a classe é uma entidade. É possível usar ambas ao mesmo tempo inclusive:

@Entity(name = "MESSAGE")
@Table(name = "t_message")
public class Message {

}

Neste caso, ao escrever consultas, você deve usar o nome dado no @Entity (MESSAGE) e o nome dado em @Table (t_message) será usado para nomear a tabela no banco de dados.