Hibernate
Tutorial Hibernate: Tipos de datos en Hibernate
Hibernate tipos de datos anotaciones: uso. Domina el uso de anotaciones para tipos de datos en Hibernate con ejemplos prácticos y detallados.
Aprende Hibernate GRATIS y certifícateIntroducción
A través de su sistema de tipos, Hibernate puede convertir, por ejemplo, una cadena en Java (String
) a un tipo VARCHAR
en una base de datos y viceversa.
Sin embargo, no siempre es tan sencillo, y es por eso que Hibernate ofrece una amplia variedad de tipos de datos, así como la capacidad de definir tipos personalizados, permitiendo a los desarrolladores controlar cómo se realizan estas conversiones y adaptarlas a las necesidades específicas de su aplicación.
Tipos básicos
Los tipos básicos en Hibernate son una categoría de tipos que corresponden directamente a los tipos Java estándar. Estos tipos están diseñados para ofrecer un mapeo simple y directo entre las columnas de la base de datos y los campos de las entidades Java.
La ventaja de estos tipos básicos es que facilitan el proceso de mapeo y requieren una configuración mínima. Hibernate ya conoce cómo mapear estos tipos de datos, y para la mayoría de las aplicaciones, estos mapeos predeterminados son suficientes.
Algunos ejemplos comunes de tipos básicos en Hibernate incluyen:
Tipos primitivos de Java y sus contrapartes envolventes:
int
yInteger
: se mapean generalmente a columnas de tipoINTEGER
en bases de datos.long
yLong
: se mapean aBIGINT
o equivalentes.boolean
yBoolean
: suelen mapearse aBOOLEAN
o, en algunas bases de datos, aBIT
oTINYINT
.char
yCharacter
: pueden mapearse a columnasCHAR
de longitud 1.
Objetos comunes en Java:
String
: generalmente se mapea aVARCHAR
oTEXT
, dependiendo de la longitud.Date
yTimestamp
dejava.util
: a menudo se mapean a columnas de tipoDATE
oTIMESTAMP
en bases de datos.
Tipos numéricos de precisión arbitraria:
BigInteger
: se mapea a columnasBIGINT
.BigDecimal
: se mapea a columnas de tipoDECIMAL
oNUMERIC
.
Arrays y Colecciones:
- Listas, conjuntos y mapas (
List
,Set
,Map
) tienen tipos específicos en Hibernate para manejar colecciones de entidades o valores.
Ejemplo
Ejemplo de tipos de datos sobre una entidad Employee
import jakarta.persistence.*;
@Entity
@Table(name = "employee")
public class Empleado {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(name = "titulo", length = 200)
private String titulo;
@Temporal(TemporalType.DATE)
@Column(name = "fecha_publicacion")
private Date fechaPublicacion;
@Temporal(TemporalType.TIME)
@Column(name = "wake_time")
private Date wakeTime;
@Column(name="test_date")
private Instant testDate;
@Enumerated(EnumType.STRING)
private ContractType type;
@ElementCollection
@CollectionTable(
name = "employee_phones",
joinColumns = @JoinColumn(name = "id_employee")
)
private List<String> phones= new ArrayList<>();
@Column(columnDefinition = "boolean default false")
private Boolean active;
// constructor vacío
// getters y setters...
}
El campo id
es de tipo Long
en Java y, por defecto, Hibernate lo mapeará a una columna de tipo BIGINT
en la base de datos.
El campo titulo
es de tipo String
y se mapeará a una columna VARCHAR
con una longitud máxima de 200 caracteres.
El campo fechaPublicacion
es del tipo Date
de java.util
. Al usar la anotación @Temporal
, se indica a Hibernate que debe mapearse a una columna DATE
en la base de datos.
Es importante notar que, si bien estos tipos básicos cubren una amplia gama de necesidades comunes, hay situaciones en las que se pueden requerir mapeos más complejos o personalizados. Es en esos casos donde los tipos personalizados y otros mecanismos avanzados de Hibernate entran en juego.
Ejercicios de esta lección Tipos de datos en Hibernate
Evalúa tus conocimientos de esta lección Tipos de datos en Hibernate con nuestros retos de programación de tipo Test, Puzzle, Código y Proyecto con VSCode, guiados por IA.
Consultas JPQL avanzadas
Configuración con JPA
Tipos de datos personalizados
Consultas Criteria avanzadas
Operaciones en cascada
Anotaciones JPA
Asociación Many To One
Funciones en consultas JPQL
Asociación Many To Many entre Actor y Pelicula
Asociación One To Many entre Curso y Estudiante
Tipos de datos básicos
Consultas Criteria básicas
Asociación Many To Many
CRUD de entidades con asociaciones
Optimización de asociaciones con carga lazy
Asociación One To Many
Configuración con Maven
Asociación One To One
CRUD en Hibernate
Operaciones en cascada
Introducción a Hibernate
Atributos de tipo enum en entidades JPA
Carga de asociaciones en consultas con EntityGraph
Configuración con Gradle
Asociación One To One entre Libro y Resumen
Asociación One To Many
Asociación Many To Many
Creación de entidades
Ciclo de vida de una entidad
Consultas JPQL básicas
Carga de asociaciones en consultas con EntityGraph y anotaciones
Tipos de datos embebidos
Asociación Many To One entre Paciente y Clinica
Asociación Many To One
Optimización de consultas con DTOs
Atributos @Transient en entidades
Asociación One To One
Todas las lecciones de Hibernate
Accede a todas las lecciones de Hibernate y aprende con ejemplos prácticos de código y ejercicios de programación con IDE web sin instalar nada.
Introducción A Hibernate
Introducción Y Entorno
Configuración Hibernate Con Gradle
Introducción Y Entorno
Configuración Hibernate Con Maven
Introducción Y Entorno
Configuración Hibernate Con Jpa
Introducción Y Entorno
Tipos De Datos En Hibernate
Entidades Jpa Y Tipos De Datos
Atributos @Transient En Entidades
Entidades Jpa Y Tipos De Datos
Enums En Hibernate
Entidades Jpa Y Tipos De Datos
Tipos De Datos Embebidos
Entidades Jpa Y Tipos De Datos
Crud En Hibernate
Entidades Jpa Y Tipos De Datos
Ciclo De Vida De Una Entidad
Entidades Jpa Y Tipos De Datos
Creación De Entidades Jpa
Entidades Jpa Y Tipos De Datos
Asociación One To One
Asociaciones Entre Entidades
Asociación One To Many
Asociaciones Entre Entidades
Asociación Many To One
Asociaciones Entre Entidades
Asociación Many To Many
Asociaciones Entre Entidades
Operaciones En Cascada
Asociaciones Entre Entidades
Consultas Jpql Básicas
Consultas Hql Y Jpql
Consultas Jpql Avanzadas
Consultas Hql Y Jpql
Funciones En Consultas Jpql
Consultas Hql Y Jpql
Consultas Criteria Básicas
Api Criteria De Jpa
Consultas Criteria Avanzadas
Api Criteria De Jpa
Carga De Asociaciones En Consultas Con Entitygraph
Api Entitygraph
Carga De Asociaciones En Consultas Con Entitygraph Y Anotaciones
Api Entitygraph
Optimización De Consultas Con Dtos
Optimización
Optimización De Asociaciones Con Carga Lazy
Optimización
Certificados de superación de Hibernate
Supera todos los ejercicios de programación del curso de Hibernate y obtén certificados de superación para mejorar tu currículum y tu empleabilidad.
En esta lección
Objetivos de aprendizaje de esta lección
- Comprender los Tipos Básicos y aprender cómo los tipos estándar de Java se mapean a los tipos de columna en la base de datos y cómo utilizarlos en las entidades.
- Dominar los Tipos Personalizados y entender cómo crear y utilizar tipos personalizados para manejar mapeos complejos o no convencionales.
- Conocer la Integración en Entidades y saber cómo integrar los tipos básicos y personalizados en entidades de Hibernate.
- Optimizar el Mapeo de Datos y desarrollar habilidades para elegir y utilizar los tipos de datos correctos, optimizando la eficiencia y la integridad de los datos.
- Fomentar la Reutilización y Adaptabilidad y aprender a diseñar mapeos de tipos que sean reutilizables y adaptables a diferentes necesidades y contextos.