автоинкремент на postgresql слишком высок после исключения playframework - PullRequest
0 голосов
/ 05 января 2012

Добрый день,

У меня есть метод, который добавляет столбец в таблицу postgresql (созданную hibernate), которая имеет поле автоинкремента и работает нормально.

Моя проблема начинаетсяпосле того как возникнет исключение, столбец, который должен был быть добавлен, isnt (это нормально), но для следующего добавленного поля автоматически сгенерированный идентификатор имеет значение 32678, следующий - 65536 и т. д.

Это нечто-то конкретное для исключения, это происходит после любого исключения в системе.

Вот где объявлены поля:

@MappedSuperclass
public class BaseModel extends GenericModel {

@Id
@GeneratedValue(strategy = GenerationType.TABLE)
public Long id;

public Long getId() {
return id;
}

@Override
public Object _key() {
return getId();
}

}

Заранее спасибо.

1 Ответ

2 голосов
/ 05 января 2012

Стратегия TABLE не состоит в использовании поля auto_increment в таблице. Он заключается в использовании внешней таблицы, действующей как набор последовательностей, с использованием алгоритма HI / LO. Прыжок является следствием перехода к следующему значению HI.

Я бы посоветовал использовать последовательности с PostgreSQL. Это самый естественный выбор, ИМХО.

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