Разница между стратегиями генерации первичных ключей SEQUENCE и TABLE заключается в том, как происходит генерация уникальных значений: 1
- SEQUENCE. 1 Используется последовательность — специальный объект базы данных для генерации уникальных значений. 1 Значение присваивается до сохранения сущности в базе данных, что обеспечивает возможность пакетного сохранения данных. 1
- TABLE. 1 Для генерации уникального значения используется отдельная таблица, которая эмулирует последовательность. 1 Когда требуется новое значение, JPA провайдер блокирует строку таблицы, обновляет хранящееся там значение и возвращает его обратно в приложение. 1 Эта стратегия считается наихудшей по производительности, и её желательно избегать. 1
Таким образом, основное различие между стратегиями в том, что SEQUENCE использует общую последовательность базы данных для всех сущностей (всех таблиц), а TABLE — отдельную последовательность для каждой сущности (таблицы). 3