Как внедрить пользовательские идентификаторы объектов в объекты JPA - PullRequest
1 голос
/ 25 августа 2010

Я использую JPA 2 для корпоративного приложения, и мои администраторы баз данных просто поразили меня.

Они хотят, чтобы я использовал генератор идентификаторов централизованных объектов группы для всех моих таблиц ,Это означает, что вместо использования табличных значений или таблицы последовательности мне нужно будет вызвать веб-службу, чтобы получить пакет с ~ 50 идентификаторами .

Затем, , поскольку я сохраняю любое значениеновый объект, мне нужно было бы сначала ввести этот идентификатор и сохранить его в таблице.

Итак, как бы я манипулировал столбцом @Id объекта для обработки этого.

Это так же просто, как установить ключ, прежде чем я сохранюсь?Я подозреваю, что это приведет к некоей неуправляемой сущности с ошибкой установки идентификатора.

1 Ответ

1 голос
/ 25 августа 2010

Обновление:

Лучший способ - указать стратегию Sequence для сгенерированных полей и указать собственный класс Sequence.

Затем JPA будет вызывать метод nextId () этого класса каждый раз, когда онвставляет новый объект.

Этот метод позволяет сохранять полные графики без вмешательства в каждую сущность вручную.


Понял.Удивительно сложный;) - просто удалите аннотацию GeneratedValue из ключевого поля.

Он предназначен для собственных идентификаторов, таких как SSN или электронная почта, но работает независимо от источника.

@Entity
public class Client{

    @Id
    @Column(name="CLNT_ID") 
    private long key;
    @Column(name="CLNT_NUM")
    private String clientNumber;
...
}
...