vuelve usar seguir puedo pueden porque poner permite los intentarlo hashtags guardaron guardan funcionan cuantos como cambios arroba hibernate jpa default sysdate

seguir - ¿Cómo puedo usar el valor predeterminado del lado de DB mientras uso el guardado de Hibernate?



porque no puedo seguir hashtag en instagram (4)

La razón por la cual la columna de fecha obtiene un valor null al insertar, aunque se define como default SYSDATE dbms-side default , es que el valor default para una columna solo se usa si la columna no recibe un valor en la consulta. Eso significa que no debe aparecer en la oración INSERT INTO , incluso si se le ha dado null .

Si desea utilizar el default SYSDATE en el lado de DBMS, debe configurar @Column con insertable=false para obtener la columna de sus SQL INSERT s.

@Temporal(TemporalType.TIMESTAMP) @Column(name = "myDate", insertable=false) private Date myDate;

Tenga en cuenta que este enfoque siempre ignorará el valor que le proporciona a la propiedad en su aplicación cuando crea la entidad. Si realmente desea poder proporcionar la fecha a veces, tal vez debería considerar usar un activador DB para establecer el valor en lugar de un valor predeterminado.

Existe una alternativa al uso de la definición default SYSDATE del DBMS. Puede usar las anotaciones @PrePersist y @PreUpdate para asignar la fecha actual a la propiedad, antes de guardar / actualizar, si y solo si aún no se ha asignado:

@PrePersist protected void onCreate() { if (myDate == null) { myDate = new Date(); } }

Esta pregunta estrechamente relacionada ofrece diferentes enfoques: fecha y hora de creación y fecha y hora de última actualización con Hibernate y MySQL .

Tengo una columna en DB con valor predeterminado como sysdate . Estoy buscando una forma de insertar ese valor predeterminado mientras no estoy dando nada a la propiedad correspondiente en el lado de la aplicación. Por cierto, estoy usando una configuración basada en anotaciones.

¿Algún consejo?


O puede inicializar la propiedad del POJO directamente, por ejemplo:

//java code property declaration private String surname = "default";


Si está utilizando Hibernate, puede usar @CreationTimestamp para insertar la fecha predeterminada.

@CreationTimestamp @Temporal(TemporalType.TIMESTAMP) @Column(name = "create_date") private Date createDate;

y @UpdateTimestamp para actualizar el valor si es necesario

@UpdateTimestamp @Temporal(TemporalType.TIMESTAMP) @Column(name = "modify_date") private Date modifyDate;


Solo insertable = falso en tu definición @Column

vea este link para más información