एक बार जब आप ऑब्जेक्ट को जारी रखते हैं, तो आपको getId() या जो भी आपका @ID कॉलम कॉल करने में सक्षम होना चाहिए, ताकि आप इसे अपनी विधि से वापस कर सकें। आप हाइबरनेट प्रथम स्तर के कैश को भी अमान्य कर सकते हैं और इसे फिर से ला सकते हैं।
हालांकि, पोर्टेबिलिटी के लिए, आप अनुक्रम शैली आईडी पीढ़ी के साथ हाइबरनेट का उपयोग करना चाहेंगे। यदि आपको कभी भी आवश्यकता हो तो यह संक्रमण को MySQL से दूर कर देगा। निश्चित रूप से, अगर आप जनरेटर की इस शैली का उपयोग करें, आप आईडी तुरंत प्राप्त करने के लिए, क्योंकि हाइबरनेट स्तंभ मान को हल करने की जरूरत है सक्षम होने से पहले ही वस्तु बनी रहती हो जाएगा:
@Id
@GeneratedValue (generator="MY_SEQ")
@GenericGenerator(name = "MY_SEQ",
strategy = "org.hibernate.id.enhanced.SequenceStyleGenerator",
parameters = {
@Parameter(name = "sequence_name", value = "MY_SEQ"),
@Parameter(name = "initial_value", value = "1"),
@Parameter(name = "increment_size", value = "10") }
)
@Column (name = "id", nullable = false)
public Long getId() {
return this.id;
}
यह थोड़ा और अधिक जटिल है, लेकिन यह है SEQUENCE नाम बदलने के अलावा, आप जिस प्रकार की कटौती और पेस्ट कर सकते हैं।
स्रोत
2011-06-14 16:05:15
होता है, भले ही लेन-देन के लिए प्रतिबद्ध नहीं है और सत्र अभी तक बंद नहीं है सकते हैं। – Ace