JPA последовательность для серийного номера - PullRequest
4 голосов
/ 15 июля 2010

Интересно, есть ли чистый (или собственный) способ генерировать последовательность для таблицы, чтобы использовать ее в качестве серийного номера.Он должен быть последовательным (1, 2, 3 ... и т. Д.) И избегать любых возможных проблем гонки / транзакции (если несколько пользователей пытаются сохранить одно и то же время).Это не обязательно должен быть первичный ключ.

   @Id
    private Long id;

    private Long serialNumber;

спасибо.

Ответы [ 4 ]

2 голосов
/ 16 июля 2010

Интересно, существует ли чистый (или собственный) способ создания последовательности для таблицы, чтобы использовать ее в качестве серийного номера.

Насколько мне известно, нет, не для не Id поля.

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

Другим вариантом будет моделирование стратегии генератора TABLE и использование собственного SQL для считывания следующего идентификатора из него и увеличения его.

1 голос
/ 16 июля 2010

DataNucleus поддерживает использование @GeneratedValue для полей без идентификатора.

1 голос
/ 15 июля 2010

@ id @GeneratedValue (стратегия = ИДЕНТИЧНОСТЬ)?

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