JPA에서 SystemUser 엔티티를 저장하려고합니다. 또한 SystemUser를 만든 사람과 시스템 사용자를 마지막으로 수정 한 사람과 같은 특정 항목을 저장하려고합니다.JPA의 자체 참조 객체
@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 클래스를 사용하려면 시스템에 rootuser가 없어도 rootuser를 저장할 수 없습니다. JPA 엔티티를 지속시킵니다. 나중의 다른 모든 사용자는 userWhoModified를 "systemuser"로 쉽게 지속 할 수 있지만 systemuser 자체는이 스키마에 추가 할 수 없습니다.
이렇게 첫 번째 시스템 사용자를 유지하는 방법이 있습니까 (SQL로 생각하고 있습니다). 이것은 내가 생각하는 전형적인 부트 스트랩 (chicken or egg) 문제입니다.
은 커뮤니티 위키가 아니어야합니다. – Bozho
@Bozho LOL, 처음으로 반체제 위키 경찰을 보았습니다. –