Как сгенерировать часть значения для поля сущности из последовательности в Spring? - PullRequest
0 голосов
/ 06 апреля 2020

У меня есть объект Product, который выглядит примерно так:

@Entity
public class Product {
@Id
UUID id;

String productCode;
}

Я хочу, чтобы productCode был сгенерирован из последовательности с именем Product_code_sequence, которая уже находится в моей базе данных. При создании нового продукта я хочу получить следующее значение из последовательности, а затем объединить его с String, чтобы получить что-то вроде «PR000004». Также я хочу, чтобы решение было независимым от базы данных, то есть оно должно работать с Postgres, H2 и любой другой базой данных, поддерживающей последовательности.

1 Ответ

0 голосов
/ 06 апреля 2020

Как только вы save вашей сущности и останетесь в той же транзакции, вы можете установить свою собственность следующим образом (используя StringUtils из commons.lang3):

product.setProductNumber(StringUtils.rightPad(String.valueOf(product.getId()), 5, '0'));

сразу после обновления это:

repo.save(product);
...