Есть способ сделать это, но это не очень хорошо ...
Вы можете иметь свой целочисленный атрибут И атрибут объекта, сопоставленный таким образом:
@Column(ame = "GENERATED_BY", nullable = true)
private Integer generatedBy;
@ForeignKey(name="FK_Invoice_GeneratedBy")
@JoinColumn(name = "GENERATED_BY", nullable = false, updatable = false, insertable = false)
private User generatedByUser;
Вы можете не иметь никакого внешнего доступа к полю генерируемого пользователя, оно только покажет спящий режим, что есть связь.Вы можете установить поле Integer по желанию, когда вы позже загрузите этот объект из БД, у вас будет ссылка на пользователя.
Опять же, не очень красиво, но иногда может быть полезно.