यह मान्य जैसे एक रिश्ते के दोनों ओर, पर @OneToOne
और @NotNull
घोषित करने के लिए है:हाइबरनेट @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;
}
}
मैं कुछ भी है कि कहना है कि यह अवैध है नहीं मिल सकता है, लेकिन यह है कि के दौरान लगता है संबंधों के कम से कम एक तरफ दृढ़ता का उल्लंघन किया जाना चाहिए। (उदाहरण के लिए, यदि लेखन लिखना पहले प्रवेश करें, तो बदलें एंटर्री विवरण अस्थायी रूप से शून्य हो जाएगा)।
यह कोशिश करते समय, मुझे not-null property references a null or transient value
फेंक दिया गया अपवाद दिखाई देता है।
यदि संभव हो तो मैं बाधा को आराम से बचाना चाहता हूं, क्योंकि दोनों पक्ष मौजूद होना चाहिए।
पर एक समस्याग्रस्त डेटा मॉडल की तरह लग सकते हैं। – Yishai
दोनों तरफ कैस्केड होने के कारण थोड़ा अजीब है, लेकिन यह वास्तव में समस्याग्रस्त नहीं होना चाहिए। क्या आप विस्तारित कर सकते हैं? – Geoff
कैस्केड वास्तव में क्षणिक संपत्ति को जारी रखने की कोशिश करने के लिए एक शॉटगन दृष्टिकोण था। यह विवरण रिकॉर्ड –