Как ввести пользовательские идентификаторы объектов в организации JPA

StackOverflow https://stackoverflow.com/questions/3568517

Вопрос

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

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

Потом, Как я сохраняю любой новый объект, мне нужно было ввести этот идентификатор первым, и сохраните это к столу.

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

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

Это было полезно?

Решение

Обновлять:

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

JPA затем позвонит следующим способам этого класса () каждый раз, когда он вставляет новый объект.

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


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

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

@Entity
public class Client{

    @Id
    @Column(name="CLNT_ID") 
    private long key;
    @Column(name="CLNT_NUM")
    private String clientNumber;
...
}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top