Можно ли объявить @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;
}
}
Я не могу найти ничего, что говорит, что это недействительно, но кажется, что во время сохранения по крайней мере одна сторона отношения должна быть нарушена. (Например, если сначала записать changeEntry, changeEntryDetails будет null временно).
При попытке этого я вижу исключение, сброшенное not-null property references a null or transient value
.
Я хотел бы избежать ослабления ограничения, если это возможно, потому что присутствуют обе стороны должны.