Hibernate Postgres ID увеличивается в 10 с - PullRequest
0 голосов
/ 01 марта 2012

У меня проблема с использованием Hibernate с postgresql

@Id
@GeneratedValue(strategy=GenerationType.SEQUENCE)
@Column(name = "id")
private Long id;

проблема в том, что идентификатор генерируется за 10 секунд, например

10
20
30

Как мне это сделать

1
2
3

Ответы [ 3 ]

0 голосов
/ 01 марта 2012

Как уже было отмечено, вы должны использовать другую аннотацию @ javax.persistence.SequenceGenerator Вот как я это сделал

@Id
@javax.persistence.SequenceGenerator(name = "order_id_sequence", sequenceName = "order_id_seq", allocationSize = 1)
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "order_id_sequence")
@Column(name = "id")
0 голосов
/ 02 марта 2012

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

  1. Сеансы А извлекаютчисло, скажем 1, из последовательности.
  2. Сеанс B извлекает номер 2 из последовательности.
  3. Сеанс А откатывает свою транзакцию.
  4. Сеанс Б фиксирует.

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

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