Я пытаюсь назначить UUID для поля на вставке, которое я не хочу изменять ни в каких обновлениях.Вставка работает, и UUID успешно сохраняется в поле.Но при обновлении поле устанавливается равным нулю, несмотря на то, что я установил для него значение @Column(nullable=false)
.
Это означает, что я получаю
Причина: org.postgresql.util.PSQLException: ERROR:нулевое значение в столбце «id» нарушает ненулевое ограничение. Подробно: ошибочная строка содержит (null, 2019-02-26, 1, 6, 2, 103, 3066, 12, 2021.01, AAC, IAT, 690000, 0, 4,https://photo.. .) Ошибка.
Я проверил, и он пытается обновить, и может быть вызван хук preupdate.
@Data
@Entity
@IdClass(CarId.class)
public class Car {
@Id
private String date;
@Id
private int auctionId;
@Id
private int auctionNumber;
@Column(nullable = false)
private UUID id;
@PrePersist
private void assignUuid() {
this.setId(UUID.randomUUID());
}
}
Внешний вид автомобилянапример:
@Embeddable
@Data
@EqualsAndHashCode
public class CarId implements Serializable{
private String date;
private int auctionId;
private int auctionNumber;
}
Я бы хотел, чтобы тот же UUID не менялся ни при каких обновлениях.