atributo name en @Entity y @Table
Tengo una duda atributo nombre está allí en ambos
@ Entidad y @ Tabla
Por ejemplo, se me permite tener el mismo valor para el atributo name
@Entity(name = "someThing")
@Table(name = "someThing")
Y también puedo tener diferentes nombres para la misma clase
@Entity(name = "someThing")
@Table(name = "otherThing")
¿Puede alguien decirme cuál es la diferencia entre estos dos y por qué tenemos el mismo atributo en ambos ?
4 answers
@Entity(name = "someThing") => this name will be used to name Entity @Table(name = "someThing") => this name will be used to name a table in DB
Entonces, en el primer caso, su tabla y entidad tendrán el mismo nombre, lo que le permitirá acceder a su tabla con el mismo nombre que la entidad mientras escribe HQL o JPQL.
Y en el segundo caso, al escribir consultas, debe usar el nombre dado en @Entity y el nombre dado en @Table se usará para nombrar la tabla en DB.
Así que en HQL su Algo {[7] } se referirá a otherThing {[7] } en DB
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-09-11 04:32:37
@Entity(name = "someThing")
=> este nombre se utilizará para identificar el dominio ..este nombre solo será identificado por hql
consultas ie ie name nombre del objeto de dominio
@Table(name = "someThing")
=> este nombre se utilizará a qué tabla se refiere el dominio object..ie name nombre del cuadro
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-08-18 03:41:09
@Entity
es útil con las clases modelo para denotar que esta es la entidad o tabla
@Table
se utiliza para proporcionar cualquier nombre específico a su tabla si desea proporcionar cualquier nombre diferente
Nota: si no usas @Table
entonces hibernate considera que @Entity
es el nombre de tu tabla por defecto y @Entity
debe
@Entity
@Table(name = "emp")
public class Employee implements java.io.Serializable
{
}
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-10-15 05:49:49
El atributo@Table name es el nombre real de la tabla. El nombre de @Entitiy es útil si tiene dos clases @Entity con el mismo nombre y necesita una forma de diferenciarlas al ejecutar consultas.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-11-05 08:27:24