1

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;

また、永続化されたときにこれらの値が null にならないようにしたいと考えています。したがって、NotNull JPA アノテーションを使用すると、簡単に解決できます (別のエンティティへの参照とともに)。

問題の説明は簡単です。DataLoader クラスを使用して JPA エンティティを永続化する場合、システムに rootuser がないと rootuser を保存できません。それ以降の他のすべてのユーザーは、userWhoModified を "systemuser" として簡単に永続化できますが、systemuser 自体をこのスキームに追加することはできません。

この最初のシステムユーザーを永続化する方法はありますか (私は SQL で考えています)。これは、典型的なブートストラップ (鶏が先か卵が先か) の問題だと思います。

4

1 に答える 1

1

試しましたrootUser.setUserWhoLastModified(rootUser)か?

于 2010-05-25T15:51:00.020 に答える