Вы не можете сделать это с обычным процессом JPA.
Причина довольно очевидна: идентификатор генерируется только тогда, когда сущность сохраняется.
Таким образом, вам нужно либо сделать ваше требование более мягким, либо вручную назначить идентификатор. Если это важно для вас, оно все еще может происходить из последовательности.
Итак, вот несколько вариантов, которые могут оказаться полезными:
Сгенерируйте идентификатор вручную. Вы можете выбрать следующее значение для последовательности из базы данных, используя обычный запрос SQL, и использовать его для установки идентификатора любого нового объекта. Затем вы можете использовать обычный код java для объединения его с другим свойством.
У вас может быть только метод получения, который будет принимать идентификатор, а другое свойство объединять их и возвращать результат. Как только свойство и идентификатор будут установлены, получатель вернет правильный результат. До этого не так уж много.
Вы можете заполнить поле в базе данных с помощью триггера. Если вы хотите, вы можете выбрать дополнительное поле или просто сохранить его в базе данных.
Вместо использования триггера вы можете использовать представление и заставить вид собрать дополнительное поле. Если вы используете его в выражениях where или аналогичных, вы можете поместить в него индекс на основе функций.