我有一个表,它的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类,甚至可以像雪花一样。或者自己滚。