JPA中的自引用对象

时间:2010-05-25 15:39:18

标签: spring jpa spring-roo

我正在尝试在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;

我还想确保持久化时这些值不为null。因此,如果我使用NotNull JPA注释,那么很容易解决(以及引用另一个实体)

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

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

1 个答案:

答案 0 :(得分:1)

您是否尝试过rootUser.setUserWhoLastModified(rootUser)

相关问题