JPA nullable = ложный столбец устанавливается на ноль при обновлении - PullRequest
0 голосов
/ 27 февраля 2019

Я пытаюсь назначить 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 не менялся ни при каких обновлениях.

...