2010-10-25 17 views
9

के लिए टेम्पोरल लाइब्रेरीज़ मैं जावा के लिए अस्थायी पुस्तकालयों की तलाश में हूं, यानी पुस्तकालय जो एक ही अवधारणा के कई ऐतिहासिक संस्करणों को स्टोर करने की अनुमति देते हैं। मैं जो की तरह कुछ करने के लिए एक API है एक पुस्तकालय के लिए देख रहा हूँ:जावा

Instant i1 = Instant.valueOf("2010-01-01"); 
Instant i2 = Instant.valueOf("2010-01-02"); 
Attribute<String> a = .... 
a.setValue(i1, "String as of 2010-01-01"); 
a.setValue(i2, "String as of 2010-01-02"); 

आप nice articles by Martin Fowler

एक पुस्तकालय मैंने पाया पर अस्थायी मुद्दों के बारे में चर्चा पा सकते हैं JTemporal है, जो बहुत अच्छी लगती है मेरे लिए, लेकिन यह पूर्ण नहीं है और हाइबरनेट दृढ़ता के लिए समर्थन की कमी है। मुझे अस्थायी सेट के लिए भी समर्थन चाहिए, यानी समय पर एक सटीक बिंदु में परिभाषित सेट। JTemporal वह करता है, लेकिन TemporalSet जारी रखना आसान नहीं है।

+0

क्या आप इसे 'मानचित्र' के साथ नहीं कर सकते हैं? – Bozho

+0

जेटीम्पोरल यही करता है, लेकिन अस्थायी समर्थन बहुत अधिक है, जैसे कि समान मूल्य के साथ आसन्न अवधि को विलय करना, और भी बहुत कुछ। मानचित्र, हालांकि, एक अस्थायी विशेषता के लिए है, लेकिन अस्थायी सेटों को संभालना अधिक कठिन है – cdarwin

उत्तर

4

DaoFusion ढांचे पर एक नज़र डालें जो हाइबरनेट में कड़े एकीकरण के साथ एक बिटमैपोरल ढांचे के रूप में कार्य करता है। यह वही होना चाहिए जो आप खोज रहे हैं।

लिंक की गई वेबसाइट से उद्धरित:

द्विशंखी पैटर्न सबसे अस्थायी मुद्दों से निपटने की एक सुंदर और परिष्कृत तरीका प्रदान करता है। डीएओ फ्यूजन द्वारा पेश किए गए बिटकम्पोरल पैटर्न कार्यान्वयन में bitemporal framework पर इरविन वर्वाएट और क्रिस्टोफ़ वानफ्लिटर द्वारा निर्मित किया गया है। आप अपनी प्रस्तुति Temporal Issues in a Rich Domain Model से इस ढांचे के बारे में अधिक जान सकते हैं।

+0

मैं इसे भूल गया, लेकिन मैंने पहले ही इसकी जांच की है। यह अच्छा कोड है, लेकिन, अगर मैं सही ढंग से याद करता हूं, तो जेटेम्पोरल के समान ही है, और उसी "चाल" का उपयोग करता है जिसका उपयोग जेबैम्पोरल के साथ हाइबरनेट दृढ़ता प्राप्त करने के लिए किया जा सकता है: एक उदार संग्रह का उपयोग करें जिसे हाइबरनेट मानचित्र को गर्म जानता है। मुझे यकीन नहीं है कि हाइबरनेट के साथ सबसे अच्छा तरीका है, और इसके अलावा, इस चाल का उपयोग जेटेम्पोरल टेम्पोरलसेट को स्टोर करने के लिए नहीं किया जा सकता है, जो संग्रहों का संग्रह है – cdarwin

+0

इस तरह से यह काम करता है .. हाइबरनेट और प्रदान करने के लिए एक सतत सूची प्रदान करना आवेदन के लिए एक बिटमपोरल वस्तु। – stefanglase

2

Deuce STM - जावा सॉफ्टवेयर लेनदेन संबंधी मेमोरी देखें।

+0

यह प्रासंगिक कैसे है? – Bozho

+0

विवरण के आधार पर: "एक ही अवधारणा के कई ऐतिहासिक संस्करणों को स्टोर करने की अनुमति दें" –

+0

+1 बोझो, इसे फाउलर की "अस्थायी वस्तुओं" के साथ बहुत कम करना है – Toby