Вопрос небольшой, но довольно популярный — как загрузить объект из базы и сохранить его точную копию, но с другим id?
Решение простое — необходимо загрузить требуемый объект, через Session.get() или запрос, не важно. Затем отсоединить его от persistence context вызовом detach(), сбросить id и сохранить:
SomeEntity e = session.get(SomeEntity.class, 1); session.detach(e); e.setId(null); session.save(e);