Как присвоить значение PrimaryKey (генерируется с использованием последовательности) другой переменной при сохранении с JPA? - PullRequest
0 голосов
/ 01 апреля 2020

Я реализовал настраиваемый генератор на основе последовательностей, который генерирует первичный ключ объекта. Я хочу присвоить то же значение другой переменной-члену, сохраняя при этом сущность. Есть ли в любом случае это можно сделать?

1 Ответ

1 голос
/ 01 апреля 2020

Вы можете использовать аннотированный метод @PostPersist. Для простоты позвольте мне просто использовать автоматически сгенерированный идентификатор.

@Entity
@Table(name = "PERSON")
class Person {

    @Id
    @GeneratedValue
    private Long id;

    private Long idDup;

    // Getters and setters removed for brevity

    @PostPersist
    public void perPersist() {
        this.idDup = id;
    }
}

Из документации:

@ PostPersist выполняется после того, как на самом деле выполняется операция персистентности менеджера сущностей или каскад. Этот вызов вызывается после выполнения INSERT для базы данных.

Обратите внимание, что @PostPersist является аннотацией JPA, следовательно, будет работать для всех поставщиков.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...