Я пытаюсь установить поле в моей базе данных, чтобы записать дату изменения строки. Для этого я использую аннотации, предоставленные Hibernate.
Когда я создаю строку методом POST, она работает нормально. Он заполняет оба столбца (создания и изменения) одним и тем же значением (очевидно).
Проблема появляется, когда я обновляю сущность (POST). В результате в столбце «updated_date» обновляется дата, а для «creation_date» устанавливается значение «ноль».
Это моя EntityBase, которая расширена на сущность пользователя
@MappedSuperclass
public class EntityBase {
@JsonProperty("_version")
@Column(name="_version")
@Version
private Integer version = 0;
@Column(name= "CREATION_DATE", nullable = false)
@CreationTimestamp
private LocalDateTime createDateTime;
@Column(name= "UPDATED_TIME")
@UpdateTimestamp
private LocalDateTime updateDateTime;
~~ getters & setters ~~
Всякий раз, когда я делаю сообщение, кажется, что Hibernate вводит нулевое значение в сгенерированном запросе, поэтому в @ Column
есть свойство nullable.
Вот мой пользовательский объект
@Entity
@Table(name="user")
public class User extends EntityBase {
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@JsonProperty("id")
private String id;
@Column(name="NAME")
@JsonProperty("name")
private String name;
@Column(name="SURNAME")
@JsonProperty("surname")
private String surname;
@Column(name="EMAIL")
@JsonProperty("email")
private String email;
@Column(name="PASSWORD")
@JsonProperty("password")
private String password;
//bi-directional many-to-one association to Client
@ManyToOne
@JoinColumn(name="CURRENT_CLIENT_ID")
@JsonProperty("current_client_id")
private Client currentClientId;
@Column(name="INCORPORATION_DATE")
@JsonProperty("incorporation_date")
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd", timezone="Europe/Madrid")
private LocalDate incorporationDate;
@Column(name="WORKING_TIME_START")
@JsonProperty("working_time_start")
private LocalTime workingTimeStart;
@Column(name="WORKING_TIME_FINISH")
@JsonProperty("working_time_finish")
private LocalTime workingTimeFinish;
@Column(name="MEAL_TIME")
@JsonProperty("meal_time")
private LocalTime mealTime;
Что я делаю не так? Заранее спасибо!