Я пытаюсь сохранить объект SystemUser в JPA. Я также хочу сохранить некоторые вещи, например, кто создал SystemUser и кто в последний раз также изменял системного пользователя.
@ManyToOne(targetEntity = SystemUser.class)
@JoinColumn
private SystemUser userWhoCreated;
@Temporal(TemporalType.TIMESTAMP)
@DateTimeFormat(iso=ISO.DATE_TIME)
private Date timeCreated;
@ManyToOne(targetEntity = SystemUser.class)
@JoinColumn
private SystemUser userWhoLastModified;
@Temporal(TemporalType.TIMESTAMP)
@DateTimeFormat(iso=ISO.DATE_TIME)
private Date timeLastModified;
Я также хочу убедиться, что эти значения не равны нулю при сохранении. Поэтому, если я использую аннотацию NotNull JPA, это легко решается (вместе со ссылкой на другую сущность)
Описание проблемы простое, я не могу сохранить rootuser без наличия rootuser в системе, если я хочу использовать класс DataLoader для сохранения сущности JPA. Любой другой более поздний пользователь может быть легко сохранен с userWhoModified как «systemuser», но сам systemuser не может быть добавлен в эту схему.
Есть ли способ так сохранить этот первый системный пользователь (я думаю, с SQL). Полагаю, это типичная проблема с начальной загрузкой (курица или яйцо).