1

我正在尝试在 JPA 中保存一个 SystemUser 实体。我还想保存某些内容,例如谁创建了 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 注释,这很容易解决(连同对另一个实体的引用)

问题描述很简单,如果我要使用 DataLoader 类来持久化 JPA 实体,我无法在系统中没有 rootuser 的情况下保存 rootuser。以后的每个其他用户都可以轻松地将 userWhoModified 持久化为“systemuser”,但不能在此方案中添加自己的 systemuser。

有没有办法坚持这个第一个系统用户(我正在考虑使用 SQL)。我想这是一个典型的引导程序(鸡或蛋)问题。

4

1 回答 1

1

你试过rootUser.setUserWhoLastModified(rootUser)吗?

于 2010-05-25T15:51:00.020 回答