JavaEE - Entity
Concepto
-
Clase
persistencia
en unabase de datos
debe anotarse conjavax.persistence.Entity
Clase ↔ Entidad
-
JPA
utilizatabla
deBD
para cadaentidad
-
Instancias persistentes clase
se representan como unafila
en latabla
-
Clases entidad
definirclave principal
tenerconstructor
no seaargumento
yno definitiva
Claves
unsolo campo
ocombinación de campos
-
JPA
permite generarclave principal
enbase de datos
a través deanotación @GeneratedValue
-
Nombre tabla
corresponde alnombre clase
- Cambiar esto agregando la
anotación @Table(name='NEWTABLENAME')
- Cambiar esto agregando la
-
-
Corresponden a las
clases
ytablas
de labase de datos
-
Indicando al sistema de
persistencia
que estaclase
es unaentidad
que tiene quemapear
- Por cada
clase
habrá unatabla
- Por cada
-
Fichero
deconfiguración XML
( Sistema antiguo )Archivo externo
adjunto a la aplicación
-
Anotaciones
( Mejor sistema )-
Entidad
claseJava
-
Vincular con una
tabla
enbase de datos
utilizaremos la anotación@Entity
( Indicamos alsistema
depersistencia
queclase
es unaentidad
que tiene quemapear
)
-
-
Incluir
anotación
se importa de manera automática en elpaquete
package javax.persistence.Entity
-
Las
anotaciones
como@Entity
son implementadas enclases
- Requerimos importarlas como si fuera una clase
Anotación @Entity
-
Si una clase se
mapea
a unatabla
( un atributo semapea
a unacolumna
) -
Columna
→@Column
-
Indicando el nombre de la
columna
en latabla
-
Las
columnas
se llaman igual que losatributos
no hace falta utilizar la anotación@Column
-
@Column(name="nombre_columna")
- Cada
atributo
tendremos los métodosgetter/setter
para queHibernate
acceda a ellos
- Cada
-
-
Marcar
clave primaria
→@Id
-
Columna autogenerada →
@GeneratedValue
-
@GeneratedValue(strategy=GenerationType.IDENTITY)
-
-
Anotación @Id
Ejemplo
- Tabla queremos mapear una clase (
Entidad
)
package project.orm.manager;
import java.util.Date;
// Librerías JPA de persistencia
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
/**
* Tabla → mapea → Clase (Entidad)
*
* Columna → mapea → Atributo
*
*/
@Entity // Debajo de @Entity meteremos la anotación de tabla "pedidos"
@Table(name = "pedido") // Referencia a la tabla Pedidos de la base de datos
public class Pedido {
/**
* Columna "Id" que conecta con la tabla 'pedido'
*
* Se usa para marcar la clave primaria dentro de la tabla 'pedido' que
* utilizamos como anotación @Id
*/
@Column(name = "id")
@Id // Marcamos la clave privada de la tabla "pedido"
@GeneratedValue(strategy = GenerationType.IDENTITY) // Columna auto-generadora (Se usa para evitar tener que poner // @Column)
private int id;
/**
* Columna "referencia" que conecta con la tabla 'pedido'
*/
@Column(name = "referencia") // Indicamos el nombre de la columna en la tabla @Column
private String referencia;
/**
* Columna "fecha" que conecta con la tabla 'pedido'
*/
@Column(name = "fecha")
private Date fecha;
/**
* Método de instancia
*
* Obtenemos el id de la tabla pedidos
*
* @return - int - id de la tabla "pedido"
*/
public int getId() {
return id;
}
/**
* Procedimiento de instancia
*
* @param id - int - establece el id de la tabla "pedido"
*/
public void setId(int id) {
this.id = id;
}
/**
* Método de instancia
*
* @return - String - devuelve la referencia de la tabla 'pedido'
*/
public String getReferencia() {
return referencia;
}
/**
* Método de instancia
*
* @param referencia - String - establece el valor de la referencia de la tabla
* 'pedido'
*/
public void setReferencia(String referencia) {
this.referencia = referencia;
}
/**
* Metodo de instancia
*
* @return - fecha - Date - objeto de la clase Date para establecer la fecha de
* la tabla 'pedido'
*/
public Date getDate() {
return fecha;
}
/**
* Procedimiento de instancia
*
* @param fecha - Date - establece la fecha de la tabla 'pedido'
*/
public void setDate(Date fecha) {
this.fecha = fecha;
}
}
Deja un comentario