在关系中声明@OneToOne和@NotNull双方是否有效,例如:
class ChangeEntry
{
@OneToOne(cascade=CascadeType.ALL)
@NotNull
ChangeEntryDetails changeEntryDetails;
public void addDetails(ChangeEntryDetails details) {
this.changeEntryDetails = details;
details.setChangeEntry(this);
}
}
class ChangeEntryDetails
{
@OneToOne(cascase=CascadeType.ALL)
@NotNull
ChangeEntry changeEntry;
public void setChangeEntry(ChangeEntry changeEntry)
{
this.changeEntry = changeEntry;
}
}
Run Code Online (Sandbox Code Playgroud)
我找不到任何说这是无效的东西,但似乎在持久性过程中至少有一方必须违反.(例如,如果首先编写changeEntry,则changeEntryDetails将暂时为null).
尝试这个时,我看到一个异常抛出not-null property references a null or transient value.
如果可能的话,我想避免放松约束,因为双方都必须在场.