Как узнать значение ключа @Id таблицы Entity до сохранения?
Нужно сохранить большое количество связанных таблиц. И нужно знать значение ключа до сохранения в базу.
Подумал, что можно установить id
в виде uuid
в конструкторе.
@Entity
@Table(name = "dsft_depinfo", schema = "public")
@NoArgsConstructor
@Data
@EqualsAndHashCode
public class DsftDepInfo {
@Id
@Column(name = "id", nullable = false)
@GeneratedValue
private UUID id;
// другие поля
public DsftDepInfo(...) {
this.id = Generators.timeBasedGenerator().generate();
// ...
}
}
И при создании таблицы использовать скрипт:
CREATE TABLE table_name
(
pkey UUID NOT NULL DEFAULT uuid_generate_v1() ,
CONSTRAINT pkey_ table_name PRIMARY KEY ( pkey )
)
таким образом у меня будет id
до сохранения в базу. на сколько этот путь безопасен и верен при сохранении больших значений (около 10 млн записей)? Или может есть другой более изящный путь?
Источник: Stack Overflow на русском