Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Solucionado (ver solución)
Solucionado
(ver solución)
2
respuestas

Utilizar la fecha de la base de datos por ejemplo Oracle

Buenos días como podría hacer para que al crear un nuevo producto que la fechaDeRegistro sea la fecha de la base de datos por ejemplo en oracle para extraer la fecha actual se puede de la siguiente manera select sysdate from dual; Esto lo menciono porque por ejemplo al levantar la aplicación en un servidor digamos JBOSS no tiene la misma fecha y hora que el servidor de base de datos; a veces por segundos no es igual y hay operaciones que es que necesitan saber la fecha actual en tiempo real.

Que modificaciones debería hacer en la clase Producto para cambiar la fechaDeRegistro;

public class Producto {

@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
private Long id;
private String nombre;
private String descripcion;
private BigDecimal precio;
private LocalDate fechaDeRegistro = LocalDate.now(); //Como utilizar la fecha de la base de dato Oracle ejem. select sysdate from dual;
@Enumerated(EnumType.STRING)
private Categoria categoria;
2 respuestas
solución!

¡Hola Manuel!

Para utilizar la fecha de la base de datos Oracle en lugar de la fecha del servidor de aplicaciones, puedes utilizar la anotación @CreationTimestamp de Hibernate en la propiedad fechaDeRegistro de la clase Producto. Esta anotación establece la fecha de creación de la entidad en la base de datos utilizando la fecha y hora del servidor de base de datos.

Para utilizar esta anotación, debes agregar la dependencia de Hibernate en tu proyecto y luego agregar la anotación @CreationTimestamp en la propiedad fechaDeRegistro de la clase Producto de la siguiente manera:

import org.hibernate.annotations.CreationTimestamp;

// ...

public class Producto {

    @Id
    @GeneratedValue(strategy=GenerationType.IDENTITY)
    private Long id;
    private String nombre;
    private String descripcion;
    private BigDecimal precio;

    @CreationTimestamp
    private LocalDateTime fechaDeRegistro;

    @Enumerated(EnumType.STRING)
    private Categoria categoria;

    // constructor, getters y setters
}

De esta manera, al crear un nuevo producto, la propiedad fechaDeRegistro se establecerá automáticamente con la fecha y hora de creación de la entidad en la base de datos.

Espero que esta información te sea útil. ¡Buenos estudios!

Buen día Eric,

Excelente, gracias por tomarse el tiempo para darme la explicación es exactamente lo que estoy buscando ya con esta anotación tendré la fecha del servidor de base de datos que es lo que necesito, Hibernate cada día me esta convenciendo que es una buena opción para crear aplicaciones.

Saludos cordiales!!!! Buen trabajo.