मेरे पास एक सिंगलटन है जो डेटाबेस में बने रहना है। अन्य निरंतर संस्थाओं को इस सिंगलटन का संदर्भ होना चाहिए। हाइबरनेट के साथ इसे कैसे प्राप्त किया जा सकता है?हाइबरनेट/दृढ़ता और सिंगलटन पैटर्न
मैं कुछ इस तरह नहीं अभी तक काम करना, सिंगलटन के एकल आईडी faking के साथ खत्म हुआ:
@Entity
@Subselect("select '1' as ID")
class Singleton {
@Id
@Column(name="ID")
private Long getId() { return 1l; }
private void setId(Long id) { }
}
@Entity
@Table(name="ENT")
class MyEnt {
// TODO: how to annotate so that table ENT doesn't need foreign key column
Singleton s;
}
समस्या यह है कि मैं संस्थाओं में विदेशी कुंजी संदर्भित के साथ एक स्तंभ है नहीं करना चाहती है सिंगलटन - क्योंकि सिंगलटन केवल एक है और हमें इसकी आईडी की आवश्यकता नहीं है ...
शायद मैं गलत तरीके से सोच रहा हूं? शायद यह गलत वास्तुकला मुद्दा है? क्या आपने इसी तरह के मुद्दे को हल किया?
हाँ लेकिन क्या अगर आप कंटेनर को पुनः आरंभ करने की जरूरत है या आप कई कंटेनरों है? सिंगलटन की वर्तमान स्थिति को कैसे बचाएं? या इसे सभी कंटेनरों में बदल दें? – ElderMael
मेरा मतलब उस वस्तु को डिजाइन किए गए तरीके से था। मैं बस इतना कह रहा हूं कि मुझे अन्य संस्थाओं में इसका मानचित्रण करने का कोई कारण नहीं दिख रहा है। ऑब्जेक्ट को एक बार लोड करें और ऐप संदर्भ में रखें। यदि आप कंटेनर को पुनरारंभ करना चाहते हैं, तो इसे फिर से लोड करें। –
1. क्योंकि डेटा डेटाबेस में बदल सकता है (वेबपैप अधिक नोड्स पर है) 2. क्योंकि इकाई को अपने व्यापार तर्क विधियों में सिंगलटन की आवश्यकता होती है। और मैं इसे "मैन्युअल रूप से" में नहीं रखना चाहता हूं। यह डीएओ सेवा द्वारा इस डीएओ सेवा द्वारा लोड की गई संस्थाओं के लिए किया जा सकता है, लेकिन संस्थाओं के साथ क्या करना है, जो अप्रत्यक्ष रूप से लोड हो जाते हैं (मूल इकाई द्वारा संदर्भित)? – Jakub