ИМХО последовательность является лучшим подходом, поскольку она дает вам больше гибкости, хотя вы также можете использовать столбец идентификаторов (автоинкремент).Я думаю, что postgres это называется последовательным, и есть также способ хранить идентификаторы в отдельной таблице.Для решения этих трех подходов вы можете использовать:
@GeneratedValue(strategy=GenerationType.TABLE)
@GeneratedValue(strategy=GenerationType.SEQUENCE)
@GeneratedValue(strategy=GenerationType.IDENTITY)
Что касается вашего предыдущего вопроса, хорошо ли использовать одну последовательность для всех таблиц.Я бы не рекомендовал такой подход, потому что db должен утверждать, что все порядковые номера уникальны, поэтому каждое сгенерированное значение последовательности должно синхронизироваться сервером db.Если у вас есть одна последовательность на дБ, это может вызвать проблемы производительности, когда несколько запросов из нескольких таблиц запрашивают следующее значение идентификатора.Я бы порекомендовал иметь одну последовательность на таблицу.