allocSize и incrementBy - совершенно разные вещи.
Спящий режим, конечно, использует вашу последовательность, созданную в БД, но в зависимости от allocSize вы можете найти пробел в сгенерированном значении.
Например, Предположим, что текущее значение последовательности равно 5, увеличивается на 1 в db и присваивает значение по умолчанию 50.
Теперь вы хотите сохранить коллекцию из 3 элементов через спящий режим, тогда Hibernate назначит сгенерированный идентификатор 250, 251, 252
Это для целей оптимизации. Hibernate не нужно возвращаться к db и получать следующее добавочное значение.
Если вы не хотите, чтобы эта настройка allocationSize = 1
, как уже было сказано, выполнит цель
Вы можете использовать UNION
SELECT COUNT(*) FROM table1
UNION
SELECT COUNT(*) FROM table1 where condition;
UNION
SELECT COUNT(*) FROM table2;
UNION
SELECT COUNT(*) FROM table3 where condition;
. Вы можете добавить дополнительное поле, чтобы найти, какую строку вы получите, следуя запросу
SELECT "COND-1" AS TITLE, COUNT(*) FROM table1
UNION
SELECT "COND-2" AS TITLE, COUNT(*) FROM table1 where condition;
UNION
SELECT "COND-3" AS TITLE, COUNT(*) FROM table2;
UNION
SELECT "COND-4" AS TITLE, COUNT(*) FROM table3 where condition;
.