Используйте любой генератор, который вам нравится, убедитесь, что он может начинаться со смещением (при использовании последовательности вы можете соответственно инициализировать ее).
Для всех других объектов, вызовите setId (), прежде чем вставлять их. Hibernate будет генерировать идентификатор только в том случае, если свойство id равно 0. Обратите внимание, что сначала вы должны вставить объекты с идентификаторами в базу данных, а затем работать с ними. В Hibernate много кода, который ожидает, что объект будет в БД при id! = 0.
Другое решение заключается в использовании отрицательных идентификаторов для сущностей, которые идут с идентификатором. Это также обеспечит отсутствие коллизий при вставке нового объекта.