Построить идентификатор в конструкторе? - PullRequest
0 голосов
/ 29 января 2019

У меня есть таблица, идентификатор которой составлен из комбинации нескольких полей.Идентификатор представляет собой комбинацию имени, кода и 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;
     }
}

Будет ли идентификатор, сгенерированный в конструкторе, приемлемым в качестве наилучшей практики?

1 Ответ

0 голосов
/ 29 января 2019

Проблема этой практики в том, что если люди имеют одинаковые имя, псевдоним и DOB?

идентификаторы обычно подразумевают уникальные id этнификаторы.В идеале вы должны генерировать их так, чтобы не было двух противоречий.Это можно, довольно легко.Представьте себе общие псевдонимы, такие как «Дик» для «Ричард».

Вы можете посмотреть класс UUID для этого или даже пройти что-то вроде снежинки .Или сверните свое собственное.

...