我有一个表,该表的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是否可以作为最佳实践?
答案 0 :(得分:0)
这种做法的问题是,如果人们具有相同的名字,昵称和DOB,该怎么办?
ID通常是唯一的 id 标识符。理想情况下,应以没有两个冲突的方式生成它们。这可以很容易地做到。想象一下像“理查德”(Richard)这样的常见昵称,例如“迪克”。
您可以为此研究UUID类,甚至可以深入到snowflakes之类。还是自己动手。