我试图将UUID分配给我不想在任何更新中更改的插入字段。插入成功,并且UUID成功保存在字段中。但是在更新时,尽管我在其上设置了@Column(nullable=false)
,该字段仍被设置为空。
这意味着我得到
由以下原因引起:org.postgresql.util.PSQLException:错误:“ 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());
}
}
汽车ID如下:
@Embeddable
@Data
@EqualsAndHashCode
public class CarId implements Serializable{
private String date;
private int auctionId;
private int auctionNumber;
}
我希望在任何更新中都不要更改相同的UUID。