Как найти имя последовательности / таблицы генерации идентификатора в Hibernate? - PullRequest
0 голосов
/ 26 июня 2018

Я определил сущность так:

public class Chair {

    @GenericGenerator(name = "sequencePerEntityGenerator", strategy = "org.hibernate.id.enhanced.SequenceStyleGenerator", parameters = {
            @Parameter(name = "prefer_sequence_per_entity", value = "true"),
            @Parameter(name = "sequence_per_entity_suffix", value = "_seq"),
            @Parameter(name = "initial_value", value = "5000000"),
            @Parameter(name = SequenceStyleGenerator.INCREMENT_PARAM, value = "1") })
    @GeneratedValue(strategy = GenerationType.AUTO, generator = "sequencePerEntityGenerator")
    @Id
    int id;

Но я хотел бы знать, каковы имена созданных последовательностей (используя Chair.class), и извлечь названия / использовать диалект, чтобы создать свой собственный вызов nextval, и запросить новый идентификатор без какого-либо .persist () звонок сделан. Это возможно? Если да, то как? Если нет, то как?

Моя конечная цель - запросить несколько идентификаторов (до миллионов), используя один оператор SQL, как указано в в этом вопросе stackoverflow, в существующем приложении. (Другие варианты того же в MySQL, Postgres существуют как отдельные ответы на другие вопросы)

PS: Можно порекомендовать использовать PooledOptimizer или HiLo Optimizer или любые оптимизаторы на стороне клиента, уже предоставленные hibernate, для оптимизации генерации идентификаторов, но с учетом большой нагрузки, которую мое приложение вызывает из-за других процессов, он не может выделить достаточно времени ЦП для оптимизаторов последовательности, и синхронизированные методы генерации этих оптимизаторов блокируют потоки (асинхронное постоянство). Кстати, с использованием оптимизаторов замедляет многопоточные постоянные вызовы для одного и того же класса Entity и медленнее, чем NoopOptimizer (без оптимизатора).

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