Volver a la página principal
viernes 11 octubre 2024
34

Cómo definir una columna de tipo date sin hora en Spring Boot

En Spring Boot, al trabajar con bases de datos mediante JPA/Hibernate, es posible definir una columna de tipo date sin hora utilizando la anotación @Temporal. Esta anotación permite especificar el formato temporal que queremos usar para una columna en la base de datos, en este caso, únicamente la fecha (sin incluir la hora).

Definir una columna de tipo date sin hora en JPA

Para definir un campo de tipo date sin hora en una entidad JPA en Spring Boot, puedes usar la anotación @Temporal con el valor TemporalType.DATE. Esto asegurará que se almacene solo la fecha sin la hora.

Ejemplo básico:

import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import java.util.Date;

@Entity
public class MiEntidad {

    @Id
    private Long id;

    @Temporal(TemporalType.DATE)
    private Date fechaNacimiento;

    // Getters y setters
}

En este ejemplo:

  • Se utiliza @Temporal(TemporalType.DATE) para indicar que solo se almacenará la fecha (sin la hora) en la columna fechaNacimiento.

Algunos ejemplos

Usando LocalDate (Java 8 y superior)

Con las versiones modernas de Java, se puede usar el tipo LocalDate en lugar de Date para almacenar fechas sin horas. Esto es más recomendado, ya que LocalDate es parte de la nueva API de tiempo de Java.

import javax.persistence.Entity;
import javax.persistence.Id;
import java.time.LocalDate;

@Entity
public class MiEntidad {

    @Id
    private Long id;

    private LocalDate fechaNacimiento;

    // Getters y setters
}

Este enfoque no requiere la anotación @Temporal, ya que LocalDate está diseñado específicamente para almacenar solo la fecha sin la hora.

En la base de datos

En bases de datos como MySQL, la columna correspondiente se crea con el tipo DATE cuando se usa TemporalType.DATE o LocalDate.

Referencias

Para más información, puedes consultar la documentación oficial de Spring Boot.

Compartir:
Creado por:
Author photo

Jorge García

Fullstack developer