Последовательность перехода в спящий режим, используйте определенную последовательность

Сегодня мой ответственный за БД босс сказал мне, что я использую неправильную последовательность в JPA/Hibernate, но это не так, поэтому я проверил, почему мои сгенерированные записи таблицы имеют более высокий идентификатор, чем обычные (триггерные) сгенерированные записи. < br> И я нашел это на SO, что ужасно для меня, так как я использую эту последовательность БД в триггерах БД для создания записей . То есть, насколько я знаю. Что в 50 раз моя БД начнет поражать порядковые номера, сгенерированные моим Java-приложением.

Чтобы этого избежать, мне нужно использовать конкретную последовательность, а не последовательность*50. Но не нашел, как это сделать, может ли кто-нибудь мне помочь?

заранее спасибо

в настоящее время он определяется следующим образом:

@Id
@Column(name = "PVP_COST_ELEMENTS_ID")
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "wtStatSEQ")
@SequenceGenerator(name = "wtStatSEQ", sequenceName = "warehouse.wt_stat_SEQ")

person Anders Metnik    schedule 25.04.2013    source источник


Ответы (1)


В спящем режиме вы можете явно указать используемую последовательность, используя аннотации

@Id
@Column(name = "COLUMN_NAME", nullable = false)
@GeneratedValue(strategy = AUTO, generator = "yourEntitySeqGen")
@SequenceGenerator(name = "yourEntitySeqGen", sequenceName = "SEQUENCE_NAME_IN_YOUR_DATABASE")

ваше здоровье

person Belkacem REBBOUH    schedule 25.04.2013
comment
Немного обновил вопрос. Так это из-за стратегии = auto/sequence? :) - person Anders Metnik; 29.04.2013