构造函数中的 id



我有一个表,它的id是由几个字段的组合构造的。id 是名称、代码和 dateOfProduce(具有特定格式)的组合。

@Data
@Entity
@Table(name="product")
public class Product{
    private String id;
    private String name;
    private String code;
    private Date dateOfProduce;
    final private SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMdd");
     public Product(String name, String code, Date dateOfProduce) {
        id = name + "-" + code + "-" + simpleDateFormat.format(dateOfProduce);
        this.name = name;
        this.code = code;
        this.dateOfProduce = dateOfProduce;
     }
}

构造函数中生成的 id 是否可以作为最佳实践接受?

这种做法的问题是,如果人们有相同的名字、昵称和 DOB 怎么办?

ID 通常意味着唯一的 id标识符。理想情况下,您应该以没有两个冲突的方式生成它们。这个可以,相当容易。想象一下常见的昵称,如"迪克"为"理查德"。

你可以查看UUID类,甚至可以像雪花一样。或者自己滚。

最新更新