Saltar al contenido

¿Cuál es la diferencia entre el argumento de nombre en @Entity y @Table cuando se usa JPA?

Te doy la bienvenida a nuestro espacio, aquí encontrarás la respuesta a lo que estás buscando.

Solución:

@Table es opcional. Se necesita @Entity para anotar una clase POJO como una entidad, pero el nombre attribute no es obligatorio.

si tienes una clase

 @Entity
 class MyEntity 

Una tabla con nombre “MiEntidad” será creado y el nombre de la Entidad será MiEntidad. Su consulta JPQL sería:

 select * from MyEntity

En JPQL siempre usa el nombre de la Entidad y por defecto es el nombre de la clase.

si tienes una clase

 @Entity(name="MyEntityName")
 @Table(name="MyEntityTableName")
 class MyEntity 

luego una tabla con nombre MyEntityTableName se crea y el nombre de la entidad es Mi nombre de entidad.

Su consulta JPQL sería:

 select * from MyEntityName

los nombre en @Entity es para consultas JPA-QL, por defecto es el nombre de clase sin paquete (o nombre de clase no calificado, en la jerga de Java), si lo cambia, debe asegurarse de usar este nombre al crear consultas.

los nombre en @Table es el nombre de la tabla donde se guarda esta entidad.

@Entity es útil con clases modelo para indicar que esta es la entidad o tabla

@Table se utiliza para proporcionar un nombre específico a su tabla si desea proporcionar un nombre diferente

Nota: si no usa @Table entonces hibernar considera que @Entity es el nombre de su tabla por defecto

@Entity    
@Table(name = "emp")     
public class Employee implements java.io.Serializable  

Si estás de acuerdo, tienes la opción de dejar un escrito acerca de qué te ha gustado de esta división.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *