मालवेअर हे अनाहूत किंवा धोकादायक प्रोग्राम आहेत जे...
![व्हायरस आणि मालवेअर काढून टाकण्यासाठी सर्वोत्तम उपयुक्तता](https://i2.wp.com/webhelper.info/images/danger.jpg)
या लेखात, आम्ही 1C:एंटरप्राइझ 8 कॉन्फिगरेशनमध्ये काम करण्यासाठी ग्राहकांच्या संक्रमणाशी संबंधित मोठ्या कॉर्पोरेट प्रकल्पांमध्ये डेटा माइग्रेशन करण्याचा आमचा अनुभव पद्धतशीरपणे मांडू इच्छितो.
त्याच वेळी, लेखातील मुख्य जोर दिला जाईल, सर्व प्रथम, स्थलांतर प्रक्रियेच्या तांत्रिक घटकावर. संघटनात्मक घटक देखील प्रभावित आहे, परंतु काही प्रमाणात.
डेटा स्थलांतर हा सहसा कामाचा अंतिम क्रम समजला जातो, एक-वेळचा प्रकल्प जन चळवळस्रोत प्रणाली (ऐतिहासिक प्रणाली) पासून गंतव्य प्रणाली पर्यंत डेटा. त्याच वेळी, स्त्रोत सिस्टममध्ये या डेटाचे शोषण थांबते.
डेटा माइग्रेशन हे डेटा इंटिग्रेशनपासून वेगळे करणे आवश्यक आहे. एकत्रिकरण, स्थलांतराच्या विपरीत, आयटी आर्किटेक्चरचा कायमस्वरूपी भाग आहे आणि डेटाच्या प्रवाहासाठी जबाबदार आहे विविध प्रणालीआणि डेटा वेअरहाऊस - आणि ही एक प्रक्रिया आहे, एक उपक्रम नाही, एक प्रकल्प कार्यान्वित करण्यासाठी.
कडे स्थलांतरण नमुना सामान्य केसपुढीलप्रमाणे:
तांदूळ. १
ऐतिहासिक प्रणाली- ग्राहकाच्या कंपनीचे डेटाबेस, जे नवीन प्रणाली लागू करताना पूर्णपणे किंवा अंशतः बदलण्याची योजना आहे.
रिसीव्हर सिस्टम- लक्ष्य प्रणाली, अनियंत्रित कॉन्फिगरेशन "1C: एंटरप्राइज 8".
प्रारंभिक डेटा- ऐतिहासिक प्रणालींमधून सानुकूल xls फाइल स्वरूपात डाउनलोड केलेला डेटा. IN या प्रकरणात xls फॉरमॅट सर्वात सोयीस्कर वाटतो, कारण xls फाईल अपलोड करण्याची क्षमता “मागील पिढ्यांच्या” अनेक अकाउंटिंग सिस्टममध्ये आहे.
कसे आधुनिक पर्याय xml फाईल फॉरमॅटला वाहतूक म्हणून विचारात घेणे शक्य आहे.
इंटरमीडिएट डेटाबेस वापरण्याचे पर्याय देखील आहेत.
परिवर्तन, परिवर्तन- लोडिंगसाठी स्त्रोत डेटा डेटामध्ये रूपांतरित करण्याची प्रक्रिया. डेटा ट्रान्सफॉर्मेशन लोडिंग टेम्पलेट्सनुसार होते. परिवर्तनाचा परिणाम म्हणजे डेटा लोड करणे.
डाउनलोड करण्यासाठी डेटा- प्राप्त प्रणालीमध्ये लोड करण्याच्या उद्देशाने डेटा. हा लेख, तसेच स्त्रोत डेटा, xls स्वरूपाचा विचार करतो.
लोड करण्यासाठी डेटा टेम्पलेट- लोड करायच्या डेटा टेबलचे वर्णन लक्ष्य प्रणाली.
चरण-दर-चरण स्थलांतर तयार करण्याच्या आणि आयोजित करण्याच्या प्रक्रियेचा विचार करूया.
स्थलांतराच्या संस्थात्मक टप्प्यांमध्ये खालील मुद्द्यांचा समावेश होतो:
· स्थलांतर धोरण परिभाषित करणे. चालू या टप्प्यावरकंत्राटदार आणि ग्राहक स्थलांतर कार्य पार पाडण्यासाठी तंत्रज्ञानावर सहमत आहेत;
· स्थलांतर कार्य गटाची रचना निश्चित करणे. कार्यरत गटामध्ये कंत्राटदार आणि ग्राहक या दोघांमधील तज्ञांचा समावेश असावा ज्यांना ऐतिहासिक प्रणाली (ग्राहकाच्या बाजूने) आणि लक्ष्य प्रणाली (कंत्राटदाराच्या बाजूने) च्या ऑपरेशनची पुरेशी माहिती आहे;
· प्राथमिक स्थलांतर योजना. प्रकल्प जसजसा पुढे जाईल तसतसे स्थलांतर योजना अनेक वेळा समायोजित केली जाईल;
ऐतिहासिक प्रणाली, डेटाची मात्रा, डेटा डाउनलोड करण्यासाठी तारखांचा कालावधी. स्थलांतरासाठी डेटा कट-ऑफ कालावधी, चाचणीच्या तारखा आणि अंतिम स्थलांतर. ही माहितीस्थलांतर योजनेचे श्रेय दिले जाऊ शकते;
· स्थलांतरित करण्यासाठी डेटाची रचना. संदर्भ डेटा, वर्गीकरण, व्यवहार डेटा, शिल्लक, उलाढाल इ.;
· स्थलांतर प्रक्रियेदरम्यान आणि शेवटी डेटाची गुणवत्ता, शुद्धता आणि अखंडता तपासण्याचे मुद्दे;
· रोलबॅक समस्या मागील राज्यअपयशाच्या बाबतीत.
स्थलांतराच्या तांत्रिक टप्प्यांवर जवळून नजर टाकूया.
तांदूळ. 2
डेटा लोडिंग टेम्प्लेटमध्ये समाविष्ट आहे तांत्रिक वर्णनवर्तमान टेम्पलेटसाठी लोडिंग, अल्गोरिदम आणि लोडिंग नियमांसाठी डेटा सारण्या.
प्रत्येक टेम्पलेट सामान्यतः लक्ष्य लक्ष्य प्रणालीवर एक किंवा अधिक संबंधित सारण्यांना लक्ष्य करते.
टेम्पलेटमध्ये असे म्हटले आहे:
· डाउनलोड करण्यासाठी xls डेटा फाइलच्या सर्व फील्डचे वर्णन, यासह:
o फील्डचे नाव
o फील्ड भरणे आवश्यक असल्याचे सूचक
o फील्ड भरण्याचे उदाहरण
o नोंद
· लोड करण्याच्या डेटावर आधारित टार्गेट सिस्टम सारणी लोड करण्याच्या नियमांचे वर्णन (अनेक संबंधित सारण्यांच्या बाबतीत रांग, की फील्डसाठी शोध अल्गोरिदम इ.)
· लोडिंगसाठी डेटा फाइलमधून डेटा "एक ते एक" हस्तांतरित करण्याव्यतिरिक्त इतर काहीही प्रदान केले असल्यास लक्ष्य प्रणाली सारण्यांचे फील्ड थेट भरण्याचे वर्णन. संदर्भ फील्डसाठी उपयुक्त, उदाहरणार्थ.
या टप्प्यावर काम सुरू असताना, कंत्राटदाराने लोडिंगसाठी डेटा फाइल लोडर देखील तयार करणे आवश्यक आहे. xls फाइल्ससह कार्य करताना, हे कार्य विशेषतः कठीण नाही.
हा टप्पा मागील टप्प्यासह सुरू होऊ शकतो “1. डेटा लोडिंग टेम्पलेट्स तयार करत आहे."
या टप्प्यावर, ग्राहकाचे विशेषज्ञ कोणत्या सिस्टममधून आणि कोणता डेटा डाउनलोड केला जाऊ शकतो हे निर्धारित करतात. आपण कोणता डेटा देखील निर्धारित केला पाहिजे कदाचित आवश्यक असू शकते.
एक नियम म्हणून, मध्ये मोठे प्रकल्पस्थलांतर, डेटा स्रोतांची संपूर्ण, सर्वसमावेशक सूची ओळखण्यासाठी बराच वेळ लागू शकतो बराच वेळआणि त्यानंतरच्या टप्प्यात काम प्रगतीपथावर होते.
अनेकदा अशी परिस्थिती असते जेव्हा भविष्यात माहितीची अखंडता सुनिश्चित करण्यासाठी, काही डेटा येथून हस्तांतरित करणे आवश्यक आहे मुद्रित स्रोत(डिजिटायझेशन) किंवा अगदी ग्राहकाच्या मुख्य कर्मचाऱ्यांच्या शब्दांमधून टेबलमध्ये प्रवेश करा.
तथापि, या टप्प्यावर आपण शक्य तितका आवश्यक डेटा ओळखण्याचा प्रयत्न केला पाहिजे.
ऐतिहासिक प्रणालींमधून डेटा डाउनलोड करण्याच्या प्रक्रियेस बराच वेळ लागू शकतो, विशेषत: जर तेथे अनेक प्रणाली असतील, तर त्या भिन्न आहेत आणि ग्राहकाचे वेगवेगळे विभाग त्यांच्यासाठी जबाबदार आहेत. विचार केला पाहिजे हा क्षणचाचणी आणि अंतिम स्थलांतर दरम्यान.
बहुतेक सोयीस्कर पर्यायहे xls फाइल्सवर अपलोड होत असल्याचे दिसते. अनेक जुन्या IT प्रणाली या पर्यायाला समर्थन देतात.
csv फॉरमॅट, dbf, xml फॉरमॅट आणि इतरांवर अपलोड करण्याचे पर्याय देखील असू शकतात.
हे लक्षात घेण्यासारखे आहे की एका कारणास्तव (सुरक्षा समस्या, उदाहरणार्थ), ग्राहक या टप्प्यावर नेहमी संपूर्ण डेटा डाउनलोड प्रदान करू शकत नाही! फक्त एक डेटा संरचना आणि काही चाचणी पोझिशन्स. अशा प्रकारे, अशी परिस्थिती उद्भवू शकते की चाचणी आणि अंतिम लोड दरम्यान, स्त्रोत सारण्यांमध्ये निम्न-गुणवत्तेचा डेटा आढळून येईल, ज्यामुळे अनियोजित त्रुटी उद्भवतील.
ही समस्या कमी करण्यासाठी, ऐतिहासिक प्रणालींवरील चाचणी डाउनलोडच्या व्हॉल्यूमवर आधीच सहमती दर्शविली पाहिजे.
मॅपिंग (डेटा मॅपिंग) - सर्वसाधारणपणे, ऐतिहासिक प्रणाली आणि प्राप्त प्रणालीमधील डेटाची तुलना करण्याची प्रक्रिया. म्हणजेच, स्त्रोत डेटा आणि डेटा लोड करा.
मॅपिंग स्टेज हा सर्वात श्रम-केंद्रित टप्पा आहे आणि स्थलांतरणाच्या सर्व कामांपैकी 50% पेक्षा जास्त काम करू शकतो.
या टप्प्यावर, सर्व कार्यरत गटस्थलांतर प्रकल्प.
डेटा मॅपिंगच्या प्रक्रियेत, टेबल मॅपिंग आणि फील्ड मॅपिंगचे सबस्टेज वेगळे करणे आवश्यक आहे.
· सारण्यांचे मॅपिंग, किंवा टेम्पलेट्सचे मॅपिंग - लोडिंगसाठी स्त्रोत डेटा आणि डेटा टेम्पलेटच्या सारण्यांची तुलना. सामना एकतर 1:1 किंवा N:N असू शकतो. या कामाच्या परिणामी, टेबल मॅपिंग रेजिस्ट्री संकलित आणि राखली जाते. पुढील फील्ड मॅपिंग सबस्टेज आणि ट्रॅकिंगसाठी हे सबस्टेज आवश्यक आहे सामान्य स्थितीमॅपिंग महत्त्वाचे.
1C टेम्पलेट्सचा गट |
1C टेम्पलेटचे नाव |
फाईलचे नाव- स्रोत |
स्त्रोत फाइल तयार करण्याचे नियम |
जबाबदार |
स्थिती |
नोंद |
NSI |
नमुना_ नामकरण |
नामांक latura.xls |
सिस्टम N मध्ये निवड सेट करा |
इव्हानोव्ह I.I. |
कामावर |
· फील्ड मॅपिंग - आधीच परिभाषित टेबल मॅपिंगमध्ये टेबल फील्ड मॅपिंग. या कामाचा परिणाम म्हणजे फील्ड मॅपिंग रेजिस्ट्री.
№pp |
Cl. फील्ड |
आवश्यक आहे |
1C टेम्पलेट फील्ड नाव "टेम्पलेट_नामांकन" |
वर्णन |
फील्डचे नाव "Nomenclature.xls" |
अल्गोरिदम भरणे |
||||||||
कोड |
निर्देशिका घटक कोड |
कोड |
||||||||||||
नाव |
नाव |
|||||||||||||
होय |
हा गट |
खालीलपैकी एक मूल्य समाविष्टीत आहे: |
जर कोड लांबी = 11 वर्ण आणि शेवटचे 4 वर्ण<>"0000", नंतर हा घटक "0" असेल, अन्यथा गट "1" असेल. |
|||||||||||
पूर्ण नाव |
निर्देशिका घटकाचे नाव |
नाव |
जर ThisGroup = 1, नंतर "", अन्यथा जर ThisGroup = 0 असेल, तर Name. |
|||||||||||
या टप्प्याचा एक भाग म्हणून, आपण देखील पार पाडले पाहिजे संभाव्य कामेडेटा सामान्यीकरण वर.
मागील टप्प्यांप्रमाणे, हा टप्पा तांत्रिक आहे आणि त्यात कंत्राटदार विकासकाचे काम समाविष्ट आहे.
मान्य फील्ड मॅपिंग रजिस्टरच्या आधारे, कॉन्ट्रॅक्टरचे विशेषज्ञ डेटा ट्रान्सफॉर्मेशनसाठी नियम विकसित करतात.
च्या साठी ऑपरेशनल कामस्थलांतराच्या तयारीच्या टप्प्यात आणि पुढे, चाचणी आणि अंतिम स्थलांतर दरम्यान, डेटा ट्रान्सफॉर्मेशनसाठी नियम (स्क्रिप्ट) विकसित करण्यासाठी सोयीस्कर वातावरण आणि लोडिंगसाठी स्त्रोत डेटा डेटामध्ये रूपांतरित करण्यासाठी एक वातावरण असणे महत्वाचे आहे.
या वातावरणाच्या आवश्यकतांमध्ये हे समाविष्ट आहे:
· परिवर्तन नियमांच्या विकासाची सोय आणि गती;
· डेटा रूपांतरणाचा वेग. इनपुट आणि आउटपुट फाइल्स शेकडो हजारो ओळी लांब असू शकतात!
· अनेकांसह काम करण्याची क्षमता इनपुट फाइल्सएकाच वेळी;
· वेगळ्या फायलींमध्ये परिवर्तन नियम जतन करण्याची क्षमता.
आमच्या स्थलांतर प्रकल्पांसाठी, आम्ही आधार म्हणून मानक 1C क्वेरी कन्सोल प्रक्रिया वापरून, विशेष विकासकाचे वर्कस्टेशन विकसित केले आहे.
एक्सएलएस फाइल्सवर थेट क्वेरीस परवानगी देण्यासाठी क्वेरी कन्सोल प्रक्रिया सुधारली गेली आहे.
येथे दोन स्त्रोत xls फाइल्स एकत्र करण्याचे उदाहरण आहे कर्मचारी.xls
कर्मचारी कोड |
आडनाव |
नाव |
आडनाव |
जन्मतारीख |
2423 |
इव्हानोव्ह |
इव्हान |
इव्हानोविच |
17.11.1992 |
1523 |
पेट्रोव्ह |
तुळस |
अलेक्झांड्रोविच |
04.02.1991 |
4363 |
सिदोरोव |
किरील |
निकोलायविच |
01.05.1995 |
डेनिसोव्ह |
डेनिस |
डेनिसोविच |
01.01.1990 |
आणि ऑपरेशन्स.xlsपृष्ठांसह:
राइट-ऑफ
कर्मचारी कोड |
तारीख |
बेरीज |
2423 |
01.02.2014 |
|
1523 |
02.02.2014 |
|
4363 |
03.02.2014 |
|
04.02.2014 |
100000 |
|
2423 |
05.02.2014 |
|
1523 |
06.02.2014 |
|
4363 |
07.02.2014 |
2356 |
08.02.2014 |
140000 |
|
2423 |
09.02.2014 |
|
1523 |
10.02.2014 |
|
4363 |
11.02.2014 |
23523 |
12.02.2014 |
80000 |
आणि पावत्या:
कर्मचारी कोड |
तारीख |
बेरीज |
||
01.05.2004 |
||||
02.05.2004 |
||||
03.05.2004 |
||||
04.05.2004 |
||||
2423जन्मतारीख |
पावती रक्कम |
राइट ऑफ रक्कम |
||
इव्हानोव्ह इव्हान इव्हानोविच |
2423 |
17.11.1992 |
1341234 |
1010 |
पेट्रोव्ह वसिली अलेक्झांड्रोविच |
1523 |
04.02.1991 |
245245 |
|
डेनिसोव्ह डेनिस डेनिसोविच |
01.01.1990 |
380000 |
320000 |
|
सिडोरोव्ह किरिल निकोलाविच |
4363 |
01.05.1995 |
613382 |
26336 |
एकूण: |
2579861 |
347842 |
लक्षात घ्या की उदाहरण कृत्रिम आहे, डेटा स्त्रोतांच्या परिवर्तनाच्या सर्व संभाव्य टप्प्यांचे प्रदर्शन करण्यासाठी विशेषतः निवडले आहे.
येथे परिवर्तन ऑपरेशन्सचा तांत्रिक क्रम खालीलप्रमाणे आहे:
Access SQL क्वेरी भाषा वापरणे (जे लक्षणीय प्रदान करते अतिरिक्त वैशिष्ट्ये, 1C क्वेरी भाषेच्या तुलनेत), प्रारंभिक क्वेरी तयार केली जाते जी डेटा पुनर्प्राप्त करते xls फाइलबुधवारी 1 सी. त्याच वेळी, या टप्प्यावर हे आधीच शक्य आहे विविध चेकआणि डेटा सामान्यीकरण.
ADO डेटा ऍक्सेस तंत्रज्ञान प्रदान करते उच्च गतीकाम.
तांदूळ. 3
2. 1C भाषेतील क्वेरी - फील्ड मॅपिंग अल्गोरिदम लागू करणारी मुख्य क्वेरी. आणि हे देखील: 1C डेटाबेसमधील डेटासह डाउनलोड केलेल्या डेटाचे समृद्धी, पुनर्गठित करणे, इतर स्त्रोत xls फायलींमध्ये क्वेरीच्या परिणामांसह विलीन करणे इ.
3. आवश्यक असल्यास 1C विनंती निकालाची पोस्ट-प्रोसेसिंग. 1C भाषेत स्क्रिप्ट वापरून कार्यान्वित केले.
उदाहरणार्थ, येथे आम्ही रकमेच्या स्तंभांमध्ये "TOTAL" ओळ जोडणे लागू करतो.
4. xls फाईलमध्ये सेट केलेला अंतिम डेटा लिहा.
सर्वसाधारणपणे, आउटपुटवर आम्हाला लोड करण्यासाठी अंतिम फाइल्स मिळतात लक्ष्य बेस 1C डेटा.
तसेच हे साधनतुम्हाला वेगळ्या xml फाइलमध्ये डेटा रूपांतरण नियम जतन करण्याची परवानगी देते:
याव्यतिरिक्त, काम करणे शक्य आहे व्ही बॅच मोड, जे विशेषतः महत्वाचे आहे तेव्हा मोठ्या संख्येनेविषम स्थलांतरित डेटा.
मागील टप्प्यात, कामाचा पूर्वतयारी भाग सामान्यतः संपतो - सर्व डेटा स्रोत ओळखले जातात, स्त्रोतांकडून डेटा डाउनलोड केला जातो, डाउनलोड टेम्पलेट्स लक्ष्य डेटाबेसमध्ये तयार केले जातात, डेटा मॅपिंग तयार केले जाते आणि शेवटी, डेटा ट्रान्सफॉर्मेशन स्क्रिप्ट विकसित केले जातात. .
हे लक्षात घ्यावे की अंतिम स्थलांतर करण्यापूर्वी आपण निश्चितपणे अनेक चाचण्या घेतल्या पाहिजेत. चाचणी स्थलांतरादरम्यान, कंत्राटदार, ग्राहकांसह, ओळखतो:
रूपांतरण त्रुटी, डेटा लोडिंग त्रुटी
· पार पाडणे प्राथमिक मूल्यांकनलक्ष्य प्रणालीमध्ये लोड केलेल्या डेटाची गुणवत्ता
चाचणी स्थलांतराच्या परिणामांवर आधारित, ते अंतिम स्थलांतर योजना तयार/अपडेट करतात
डाउनलोड केलेल्या डेटाची गुणवत्ता चाचणी स्थलांतरानंतर आणि अंतिम स्थलांतराच्या शेवटी दोन्ही तपासली पाहिजे. सलोखा दरम्यान, खालील निर्देशक तपासले जाऊ शकतात:
· कागदपत्रांनुसार, शिल्लक रकमेच्या एकूण रकमेचा योगायोग;
· परिमाणवाचक जुळण्या, उदाहरणार्थ OS ची संख्या;
· वैयक्तिक निवडलेल्या संस्थांचे अचूक भरणे;
कृपया लक्षात घ्या की डेटा स्थलांतरित करण्याच्या काही तपासण्या आणि डेटा सामान्यीकरणाच्या समस्या सर्व स्थलांतर प्रक्रियेदरम्यान सोडवणे आवश्यक आहे. त्यानंतरच्या टप्प्यात चुका टाळण्यासाठी सध्याच्या टप्प्यावर काय करणे आवश्यक आहे हे तुम्ही नेहमी स्वतःला विचारले पाहिजे.
उदाहरणार्थ:
· मुख्य फील्डद्वारे डुप्लिकेट तपासा. हे मूळ डेटावर केले जाऊ शकते आणि केले पाहिजे;
· फील्ड प्रकारांची जबरदस्ती;
· संदर्भ अखंडता;
· गणितीय विसंगती. उदाहरणार्थ, रिकाम्या अंकीय क्षेत्रांची तपासणी करणे ज्यामध्ये परिवर्तन दरम्यान विभागणीची योजना आहे;
· सर्वसाधारणपणे, तपासणी अनिवार्य फील्ड भरली जातात;
· चुकीच्या वर्णांची बदली. उदाहरणार्थ, सिरिलिक फील्डमधील इंग्रजी अक्षरे (“o”, “a”, “e”, इ.) हे मुख्य फील्डसाठी विशेषतः खरे आहे!
· प्राप्त प्रणालीच्या प्रकारांचे पालन करण्यासाठी स्ट्रिंग फील्डची मूल्ये तपासणे (लांबी प्रतिबंध)
अंतिम स्थलांतर पूर्ण झाल्यानंतर, पूर्वनिर्धारित स्थलांतर धोरण आणि स्थलांतर योजनेनुसार, ऐतिहासिक प्रणालींच्या पुढील ऑपरेशनवर निर्णय घेतला जातो.
बऱ्याचदा अंतिम डेटा सामंजस्यानंतर आणि स्थलांतराचे यश रेकॉर्ड केल्यानंतर ऑपरेशन लगेच पूर्ण केले जाते - नवीन सिस्टमचे वापरकर्ते यापुढे दोन सिस्टममध्ये समांतर रेकॉर्ड ठेवत नाहीत, परंतु पूर्णपणे स्विच करतात नवीन प्रणाली. त्याच वेळी, प्रवेश जुनी प्रणालीवाचन मोडमध्ये जतन केले.
काही प्रकरणांमध्ये, चाचणी ऑपरेशन (TE) कालावधीसाठी आणि या कालावधीच्या पुढेही दोन प्रणालींचे समांतर ऑपरेशन होऊ शकते. प्रश्न समांतर कामस्थलांतर (किंवा, सर्वसाधारणपणे, नवीन प्रणालीचे कार्य!) असमाधानकारक मानले गेल्यास, दोन सिस्टममधील वापरकर्ते जुन्या सिस्टमकडे परत येण्याच्या शक्यतेच्या समस्येशी जवळून संबंधित आहेत.
शेवटी, मी हे लक्षात घेऊ इच्छितो की जेव्हा मोठ्या ट्रान्झॅक्शनल सिस्टम्सच्या स्थलांतराचा प्रश्न येतो, ज्यामध्ये अनेक 1C:एंटरप्राइज कॉन्फिगरेशनचा समावेश असतो, तेव्हा नवीन सिस्टममध्ये संक्रमण खूप श्रम-केंद्रित असू शकते.
म्हणून, हे लक्षात ठेवले पाहिजे की अशा कोणत्याही प्रकल्पासाठी काळजीपूर्वक तयारी आवश्यक आहे आणि सोबत असणे आवश्यक आहे वैयक्तिक योजना. तथापि, स्थलांतरित केल्या जाणाऱ्या सिस्टीमच्या प्रकाराकडे दुर्लक्ष करून, डेटाबेस खंड इ. सामान्य योजनास्थलांतर जवळजवळ एकसारखे दिसते.
बदललेल्या वर्गांनी एक स्तंभ घोषित करणे आवश्यक आहे प्राथमिक कळडेटाबेस टेबलमध्ये. बऱ्याच वर्गांनी त्यांचे स्वतःचे JavaBeans-शैलीचे गुणधर्म देखील घोषित केले पाहिजेत, ज्यामध्ये एक अद्वितीय अस्तित्व ओळखकर्ता समाविष्ट आहे. घटक
(1) |
नाव (पर्यायी): अभिज्ञापक मालमत्तेचे नाव. |
(2) |
प्रकार (पर्यायी): गुणधर्माचा हायबरनेट प्रकार परिभाषित करणारे नाव. |
(3) |
स्तंभ (पर्यायी - डीफॉल्ट गुणधर्म नाव): प्राथमिक की स्तंभाचे नाव. |
(4) |
जतन न केलेले-मूल्य (पर्यायी - डीफॉल्ट ते शून्य): एक अभिज्ञापक गुणधर्म मूल्य जे सूचित करते की उदाहरण नवीन आहे (सतत स्टोरेज अटींमध्ये). मागील आवृत्तीमध्ये लोड केलेल्या किंवा सेव्ह केलेल्या ट्रान्झिट उदाहरणांपेक्षा या प्रसंगाला वेगळे करते. |
(5) |
प्रवेश (पर्यायी - मालमत्तेसाठी डीफॉल्ट): ही रणनीती हायबरनेट प्रवेश करण्यासाठी वापरेल ही मालमत्तावस्तू |
तर नाव विशेषतानिर्दिष्ट केलेले नाही, असे गृहीत धरले जाते की वर्गाकडे ओळखकर्ता गुणधर्म नाही.
जतन न केलेले-मूल्य गुणधर्म महत्त्वाचे आहे! तुमच्या वर्गाची डीफॉल्ट आयडी गुणधर्म शून्य नसल्यास, तुम्ही "अनसेव्ह-व्हॅल्यू" विशेषता योग्य मूल्यावर सेट करणे आवश्यक आहे.
एक पर्यायी घोषणा आहे
५.१.४.१. जनरेटर
आवश्यक बाल घटक
सर्व जनरेटर net.sf.hibernate.id.IdentifierGenerator इंटरफेस लागू करतात. हा एक अतिशय सोपा इंटरफेस आहे; अनेक अनुप्रयोग त्यांच्या स्वतःच्या सानुकूल जनरेटर अंमलबजावणीचा वापर करू शकतात. असे असूनही, हायबरनेटमध्ये अनेक अंगभूत जनरेटर समाविष्ट आहेत. खाली अंगभूत जनरेटरसाठी लहान नावे (लेबल) आहेत:
वाढ
अभिज्ञापक व्युत्पन्न करते लांब टाइप करा, लहान किंवा int, अद्वितीय तेव्हाच जेव्हा इतर कोणतीही प्रक्रिया समान सारणीमध्ये डेटा जोडत नाही. क्लस्टरमध्ये वापरू नका.
ओळखDB2, MySQL, MS मधील ओळख स्तंभांना समर्थन देते SQL सर्व्हर, Sybase आणि HypersonicSQL. रिटर्न आयडेंटिफायर प्रकार लांब, लहान किंवा पूर्ण आहे.
क्रमDB2, PostgreSQL, Oracle, SAP DB, McKoi मधील अनुक्रम किंवा इंटरबेसमध्ये जनरेटर वापरते. रिटर्न आयडेंटिफायर प्रकार लांब, लहान किंवा पूर्ण आहे.
हिलोहाय व्हॅल्यूजचा स्रोत म्हणून टेबल आणि कॉलमचे नाव (डिफॉल्ट hibernate_unique_key आणि next_hi, अनुक्रमे) आवश्यक असलेले लाँग, शॉर्ट किंवा int प्रकारचे अभिज्ञापक कार्यक्षमतेने जनरेट करण्यासाठी hi/lo अल्गोरिदम वापरते. हाय/लो अल्गोरिदम आयडेंटिफायर्स व्युत्पन्न करते जे केवळ वैयक्तिक डेटाबेससाठी अद्वितीय असतात. हे जनरेटर JTA कनेक्शन किंवा कस्टम कनेक्शनसाठी वापरू नका.
seqhiloडेटाबेस क्रम वापरून लाँग, शॉर्ट किंवा इंटचे अभिज्ञापक तयार करण्यासाठी हाय/लो अल्गोरिदम वापरते.
uuid.hexनेटवर्कमध्ये अद्वितीय असलेले स्ट्रिंग अभिज्ञापक तयार करण्यासाठी 128-बिट UUID अल्गोरिदम वापरते (IP पत्ता वापरून). UUID ही 32-वर्णांची स्ट्रिंग आहे ज्यामध्ये संख्येचे हेक्साडेसिमल प्रतिनिधित्व आहे.
uuid.stringसमान UUID अल्गोरिदम वापरते, परंतु हे जनरेटर वापरताना स्ट्रिंगमध्ये 16 (काही) ANSII वर्ण असतात. PostgreSQL सह वापरू नका.
मुळवापरल्या जाणाऱ्या डेटाबेसच्या क्षमतांवर अवलंबून ओळख, अनुक्रम किंवा हिलो निवडते.
नियुक्त केलेसेव्ह() मेथडला कॉल करण्यापूर्वी ऑब्जेक्ट आयडेंटिफायर स्वतंत्रपणे सेट करण्याची क्षमता ॲप्लिकेशनला पुरवते.
परदेशीइतर, संबंधित ऑब्जेक्टचा अभिज्ञापक वापरला जातो. सह व्यवहारात सामान्यतः वापरले जाते
५.१.४.२. हाय/लो अल्गोरिदम
hilo आणि seqhilo जनरेटर hi/lo अल्गोरिदमची दोन पर्यायी अंमलबजावणी प्रदान करतात, आयडेंटिफायर व्युत्पन्न करण्यासाठी पसंतीचा दृष्टिकोन. पहिल्या अंमलबजावणीसाठी पुढील "हाय" मूल्य संचयित करण्यासाठी डेटाबेसमध्ये "विशेष" सारणी आवश्यक आहे. दुसरी अंमलबजावणी त्यांना समर्थन देणाऱ्या डेटाबेसमध्ये अनुक्रम (Oracle-style) वापरते.
दुर्दैवाने, हायबरनेटला तुमचे कनेक्शन पुरवताना तुम्ही hilo वापरू शकत नाही, किंवा Hiberante JTA-व्यवस्थापित ऍप्लिकेशन सर्व्हर डेटा स्रोत वापरत असलेल्या कॉन्फिगरेशनमध्ये वापरू शकत नाही. Hiberante नवीन व्यवहारात "हाय" मूल्य प्राप्त करण्यास सक्षम असणे आवश्यक आहे. मानक दृष्टीकोन EJB मध्ये, हाय/लो अल्गोरिदम लागू करण्यासाठी सेशन स्टेटलेस बीन वापरणे आहे.
५.१.४.३. UUID अल्गोरिदम
PostgreSQL मध्ये uuid.string वापरण्याचा प्रयत्न करू नका.
५.१.४.४. अनुक्रम आणि ओळख स्तंभ
इंडेंटिटी कॉलम्स (DB2, MySQL, Sybase, MS SQL) ला सपोर्ट करणाऱ्या डेटाबेससाठी तुम्ही आयडेंटिटी की जनरेटर वापरू शकता. सीक्वेन्सना सपोर्ट करणाऱ्या डेटाबेससाठी, तुम्ही की व्युत्पन्न करण्यासाठी सिक्वेन्स स्टाइल वापरू शकता. या दोन्ही धोरणांसाठी दोन आवश्यक आहेत SQL क्वेरीडेटाबेसमध्ये नवीन ऑब्जेक्ट घालण्यासाठी.
क्रॉस-प्लॅटफॉर्म अनुप्रयोग विकसित करण्यासाठी, मूळ धोरण वापरा. हे हायबरनेट सध्या कार्यरत असलेल्या डेटाबेसच्या क्षमतेनुसार ओळख, अनुक्रम आणि हिलो धोरणे वापरेल.
५.१.४.५. परिभाषित आयडी
तुम्हाला ॲप्लिकेशननेच आयडी असाइन करायचा असल्यास, तुम्ही असाइन केलेला जनरेटर वापरू शकता. हा विशेष जनरेटर अनुप्रयोगाद्वारे सेट केलेले ID वापरतो. हे करण्यासाठी, अनुप्रयोग ऑब्जेक्टच्या संबंधित मालमत्तेवर अभिज्ञापक सेट करतो. की सेट करण्यासाठी हे वैशिष्ट्य वापरताना खूप सावधगिरी बाळगा (बहुतेक प्रकरणांमध्ये हा निर्णय खराब अनुप्रयोग डिझाइन दर्शवतो).
त्याच्या मूळ स्वभावामुळे, या जनरेटरचा वापर करणाऱ्या संस्था Session.saveOrUpdate() पद्धतीद्वारे जतन केल्या जाऊ शकत नाहीत. त्याऐवजी, तुम्ही योग्य सत्र ऑब्जेक्ट पद्धती: save() किंवा update() कॉल करून ऑब्जेक्ट तयार केला पाहिजे किंवा अपडेट केला पाहिजे हे स्पष्टपणे हायबरनेटला सांगणे आवश्यक आहे.
संमिश्र की असलेल्या सारण्यांसाठी, तुम्ही अनेक वर्ग गुणधर्म ऑब्जेक्ट ओळख गुणधर्म म्हणून उघड करू शकता. घटक
कंपोझिट आयडेंटिफायर समतुल्यता लागू करण्यासाठी तुमच्या पर्सिस्टंट क्लासने equals() आणि hashCode() पद्धती ओव्हरराइड करणे आवश्यक आहे. हे अनुक्रमे करण्यायोग्य इंटरफेस देखील लागू करणे आवश्यक आहे.
दुर्दैवाने, कंपोझिट आयडेंटिफायर निर्दिष्ट करण्याची क्षमता हे सूचित करते की पर्सिस्टंट ऑब्जेक्ट हा आयडेंटिफायर आहे. ऑब्जेक्टद्वारेच सोयीस्कर प्रक्रियेसाठी कोणतीही शक्यता नाही. तुम्ही स्वतः एक पर्सिस्टंट क्लास एंटिटी तयार केली पाहिजे आणि त्या कंपोझिट आयडेंटिफायरशी संबंधित पर्सिस्टंट स्टेट लोड () करण्यापूर्वी त्याची ओळख गुणधर्म सेट करा. विभाग 7.4, "संमिश्र अभिज्ञापक म्हणून घटक" मध्ये, आम्ही अधिक योग्य मार्गाचे वर्णन करू, जेथे संमिश्र अभिज्ञापक स्वतंत्र वर्ग म्हणून लागू केले जातात. खाली वर्णन केलेले गुणधर्म केवळ वैकल्पिक पद्धतीसाठी लागू आहेत:
नाव (पर्यायी): एक घटक प्रकार गुणधर्म ज्यामध्ये संमिश्र अभिज्ञापक आहे (पुढील विभाग पहा).
वर्ग (पर्यायी, डीफॉल्टनुसार गुणधर्म प्रकार प्रतिबिंबाद्वारे निर्धारित केला जातो): या वर्गाचा घटक संमिश्र अभिज्ञापक म्हणून वापरला जातो (पुढील विभाग पहा).
जतन न केलेले-मूल्य (पर्यायी, डीफॉल्ट काहीही नाही): कोणत्याही वर सेट केले असल्यास, हे सूचित करते की संक्रमण घटक नवीन मानले जातात.
घटक
प्रत्येक वर्गासाठी संबंधित discriminator स्तंभ मूल्ये घटकांसाठी discriminator-value विशेषता मध्ये निर्दिष्ट केली आहेत
बल विशेषता केवळ तेव्हाच उपयुक्त आहे जेव्हा टेबलमध्ये पर्सिस्टंट क्लासमध्ये न दिसणाऱ्या अतिरिक्त भेदभाव मूल्यांसह नोंदी असतील. सहसा ही विशेषता वापरली जात नाही.
घटक
(1) |
स्तंभ (पर्यायी, मालमत्ता नावासाठी डीफॉल्ट): आवृत्ती क्रमांक संचयित करणाऱ्या स्तंभाचे नाव. |
(2) |
नाव: पर्सिस्टंट क्लास प्रॉपर्टीचे नाव. |
(3) |
प्रकार (पर्यायी, पूर्णांक करण्यासाठी डीफॉल्ट): आवृत्ती गुणधर्माचा प्रकार. |
(4) | |
(5) |
unsaved-value (पर्यायी, default to undefined): एक आवृत्ती गुणधर्म मूल्य जे सूचित करते की अस्तित्व अद्याप जतन केले गेले नाही (जतन केलेले नाही). जतन न केलेल्या संस्थांना मागील सत्रात सेव्ह केलेल्या किंवा लोड केलेल्या संक्रमण घटकांसह गोंधळात टाकू नका. (अपरिभाषित सूचित करते की अभिज्ञापक मूल्य वापरले जाईल.) |
आवृत्ती क्रमांक लांब, पूर्णांक, लहान, टाइमस्टॅम्प किंवा कॅलेंडर प्रकारातील असू शकतात.
घटक
(1) |
स्तंभ (पर्यायी, मालमत्ता नावासाठी डीफॉल्ट): टाइमस्टॅम्प असलेल्या स्तंभाचे नाव. |
(2) |
नाव: पर्सिस्टंट क्लासच्या तारखेचे किंवा टाइमस्टॅम्प गुणधर्माचे JavaBeans-शैलीचे नाव. |
(3) |
प्रवेश (पर्यायी, मालमत्तेसाठी डीफॉल्ट): गुणधर्माच्या मूल्यामध्ये प्रवेश करण्यासाठी हायबरनेटने वापरावे. |
(4) |
unsaved-value (वैकल्पिक - डीफॉल्ट टू शून्य): एक वेळ गुणधर्म मूल्य जे सूचित करते की अस्तित्व अद्याप जतन केले गेले नाही (जतन केलेले नाही). जतन न केलेल्या संस्थांना मागील सत्रात सेव्ह केलेल्या किंवा लोड केलेल्या संक्रमण घटकांसह गोंधळात टाकू नका. (अपरिभाषित सूचित करते की अभिज्ञापक मूल्य वापरले जाईल.) |
टीप: घटक
घटक
(1) |
नाव: मालमत्तेचे नाव, लहान अक्षराने सुरू होणारे. |
(2) |
स्तंभ (पर्यायी, मालमत्तेचे नाव डीफॉल्टनुसार बदलले जाते): डेटाबेस टेबलमधील संबंधित स्तंभाचे नाव. |
(3) |
प्रकार (पर्यायी): हायबरनेट प्रकाराचे नाव. |
(4) |
अपडेट, इन्सर्ट (पर्यायी, डीफॉल्ट टू सत्य) : हे सूचित करते की संबंधित कॉलम SQL अपडेट आणि/किंवा INSERT स्टेटमेंटमध्ये समाविष्ट केले जावे. दोन्ही गुणधर्म असत्य वर सेट केल्याने त्या मालमत्तेचे मूल्य समान स्तंभ/स्तंभांमध्ये, ट्रिगरद्वारे किंवा दुसऱ्या अनुप्रयोगाद्वारे प्रदर्शित केलेल्या दुसऱ्या गुणधर्मावरून सेट केले जाऊ शकते. |
(5) |
सूत्र (पर्यायी): एक SQL अभिव्यक्ती जी मालमत्तेच्या मूल्याची गणना करते. गणना केलेली फील्ड डेटाबेस टेबल कॉलममध्ये मॅप केली जाऊ नयेत. |
(6) |
प्रवेश (पर्यायी, मालमत्तेसाठी डीफॉल्ट): गुणधर्माच्या मूल्यामध्ये प्रवेश करण्यासाठी हायबरनेटने वापरावे. |
प्रकार मालमत्तेचे मूल्य खालीलपैकी एक असू शकते:
हायबरनेट बेस प्रकाराचे नाव (उदाहरणार्थ, पूर्णांक, स्ट्रिंग, वर्ण, तारीख, टाइमस्टॅम्प, फ्लोट, बायनरी, अनुक्रमे करण्यायोग्य, ऑब्जेक्ट, ब्लॉब).
Java वर्गाचे नाव (उदाहरणार्थ, int, float, char, java.lang.String, java.util.Date, java.lang.Integer, java.sql.Clob).
PersistentEnum वरून घेतलेल्या वर्गाचे नाव (उदाहरणार्थ, उदा. रंग).
अनुक्रमित करण्यासाठी Java वर्गाचे नाव.
सानुकूल वर्गाचे नाव (उदाहरणार्थ, com.illflow.type.MyCustomType).
तुम्ही टाइप प्रॉपर्टीसाठी मूल्य निर्दिष्ट न केल्यास, हायबरनेट योग्य हायबरनेट प्रकाराचा अंदाज घेण्यासाठी निर्दिष्ट केलेल्या गुणधर्मावर प्रतिबिंब वापरेल. हायबरनेट त्या क्रमाने नियम 2, 3, 4 वापरून get() पद्धतीने परत केल्या जाणाऱ्या मालमत्तेचे वर्ग नाव निश्चित करण्याचा प्रयत्न करेल. तथापि, हे नेहमीच पुरेसे नसते. काही प्रकरणांमध्ये, आपल्याला अद्याप प्रकार विशेषता निर्दिष्ट करण्याची आवश्यकता आहे. (उदाहरणार्थ, Hibernate.DATE आणि Hibernate.TIMESTAMP मध्ये फरक करण्यासाठी किंवा सानुकूल प्रकार निर्दिष्ट करण्यासाठी.)
रनटाइममध्ये हायबरनेट फील्डमध्ये कसे प्रवेश करते हे ऍक्सेस विशेषता तुम्हाला नियंत्रित करण्यास अनुमती देते. डीफॉल्टनुसार, फील्डमध्ये प्रवेश करण्यासाठी हायबरनेट कॉल गेट/सेट पद्धती. तुम्ही access="field" निर्दिष्ट केल्यास, हायबरनेट गेट/सेट पद्धतींना बायपास करेल आणि प्रतिबिंब वापरून थेट फील्डमध्ये प्रवेश करेल. net.sf.hibernate.property.PropertyAccessor इंटरफेस लागू करणारा वर्ग निर्दिष्ट करून तुम्ही तुमची स्वतःची प्रवेश धोरण निर्दिष्ट करू शकता.
दुसऱ्या पर्सिस्टंट क्लासशी सामान्य संबंध अनेक-टू-एक घटक वापरून घोषित केला जातो. रिलेशनल अटींमध्ये, हे अनेक-टू-वन असोसिएशन आहे. तो खरोखर फक्त एक ऑब्जेक्ट संदर्भ आहे.
(1) |
नाव: मालमत्तेचे नाव. |
(2) |
स्तंभ (पर्यायी): स्तंभाचे नाव. |
(3) |
वर्ग (पर्यायी - डीफॉल्टनुसार, फील्ड प्रकार प्रतिबिंबाद्वारे निर्धारित केला जातो): संबंधित वर्गाचे नाव. |
(4) |
कॅस्केड (पर्यायी): कोणते ऑपरेशन मूळ ऑब्जेक्टपासून संबंधित ऑब्जेक्टवर कॅस्केड करेल ते निर्दिष्ट करते. |
(5) | |
(6) |
अपडेट, इन्सर्ट (पर्यायी - डीफॉल्टनुसार खरे) हे निर्धारित करते की प्रदर्शित कॉलम SQL UPDATE आणि/किंवा INSERT क्वेरीमध्ये समाविष्ट केले जातील. दोन्ही गुणधर्म असत्य वर सेट केल्याने त्या मालमत्तेचे मूल्य समान स्तंभ/स्तंभांमध्ये, ट्रिगरद्वारे किंवा दुसऱ्या अनुप्रयोगाद्वारे प्रदर्शित केलेल्या दुसऱ्या गुणधर्मावरून सेट केले जाऊ शकते. |
(7) |
प्रॉपर्टी-रेफ: (पर्यायी) संबंधित वर्गाच्या मुख्य गुणधर्माचे नाव. ही मालमत्ता बंधनासाठी वापरली जाईल. निर्दिष्ट न केल्यास, संबंधित वर्गाची प्राथमिक की वापरली जाते. |
(8) |
प्रवेश (पर्यायी - मालमत्तेसाठी डीफॉल्ट): दिलेल्या फील्डच्या मूल्यामध्ये प्रवेश करण्यासाठी हायबरनेट वापरते. |
कॅस्केड विशेषता खालील मूल्ये घेऊ शकते: सर्व, सेव्ह-अपडेट, हटवा, काहीही नाही. कोणत्याही व्यतिरिक्त मूल्य सेट केल्याने संबंधित (बाल) ऑब्जेक्टवर काही ऑपरेशन्स होतील. खाली "ऑब्जेक्ट लाइफ सायकल" पहा.
बाह्य-जोड गुणधर्म खालील तीन मूल्ये घेऊ शकतात:
ऑटो (डिफॉल्ट) संबंधित क्लासमध्ये प्रॉक्सी नसल्यास बाह्य जोडणी वापरून संबंधित वस्तू पुनर्प्राप्त करते.
खरे बाह्य जोडणी वापरून नेहमी संबंधित वस्तू पुनर्प्राप्त करा.
false बाह्य जोडणी वापरून कधीही संबंधित वस्तू पुनर्प्राप्त करू नका.
एक सामान्य अनेक-ते-एक असोसिएशन घोषणा यासारखी दिसते
जेव्हा परदेशी की प्राथमिक की व्यतिरिक्त इतर संबंधित सारणीच्या अनन्य मूल्याचा संदर्भ देते तेव्हाच प्रॉपर्टी-रेफ विशेषता वारसा मिळालेल्या डेटाशी लिंक करण्यासाठी वापरली जाते. हा एक धोकादायक रिलेशनल निर्णय आहे. उदाहरणार्थ, हे शक्य आहे की उत्पादन वर्गामध्ये एक अद्वितीय अनुक्रम संख्या आहे जी प्राथमिक की नाही. (युनिक विशेषता हायबरनेटच्या डीडीएल जनरेशनवर नियंत्रण ठेवते. स्कीमाएक्सपोर्ट युटिलिटी वापरून जनरेशन केले जाते.)
OrderItem साठी मॅपिंग हे वापरू शकते:
खरं तर, हे करणे अत्यंत निरुत्साहित आहे.
दुसऱ्या पर्सिस्टंट क्लाससोबत वन-टू-वन असोसिएशन वन-टू-वन घटक वापरून घोषित केले जाऊ शकते.
(1) |
नाव: मालमत्तेचे नाव. |
(2) |
वर्ग (पर्यायी - फील्ड प्रकारावर आधारित प्रतिबिंबानुसार डीफॉल्टनुसार निर्धारित): संबंधित वर्गाचे नाव. |
(3) |
कॅस्केड (पर्यायी) हे निर्दिष्ट करते की कोणते ऑपरेशन मूळ ऑब्जेक्टपासून संबंधित ऑब्जेक्टवर कॅस्केड केले जाईल. |
(4) |
constrained (वैकल्पिक) निर्दिष्ट करते की संबंधित वर्गाच्या सारणीचा संदर्भ देणारी परदेशी की त्या सारणीच्या प्राथमिक कीद्वारे मर्यादित आहे. सेव्ह() आणि डिलीट() कॅस्केड ऑपरेशन्स ज्या क्रमाने केल्या जातात (आणि स्कीमा एक्सपोर्ट टूलद्वारे देखील वापरले जाते) हा पर्याय प्रभावित करतो. |
(5) |
outer-join (पर्यायी - स्वयंवर डीफॉल्ट): hibernate.use_outer_join कॉन्फिगरेशन फाइल पर्याय सक्षम असल्यास बाह्य-जॉइन वापरून संबंधित ऑब्जेक्ट्सची पुनर्प्राप्ती सक्षम करते. |
(6) |
प्रॉपर्टी-रेफ: (पर्यायी) संबंधित वर्गाच्या मालमत्तेचे नाव जे या वर्गाच्या प्राथमिक कीमध्ये समाविष्ट केले आहे. निर्दिष्ट न केल्यास, संबंधित वर्गाची प्राथमिक की वापरली जाते. |
(7) |
प्रवेश (पर्यायी, मालमत्तेसाठी डीफॉल्ट): या फील्डमध्ये प्रवेश करण्यासाठी हायबरनेटने वापरलेली रणनीती. |
वन-टू-वन असोसिएशनचे दोन प्रकार आहेत:
प्राथमिक मुख्य संबंध
एक अद्वितीय परदेशी की वापरून संबंध
प्राथमिक की वापरून असोसिएशन आयोजित करण्यासाठी, अतिरिक्त स्तंभांची आवश्यकता नाही; जर दोन रेकॉर्ड अशा असोसिएशनशी संबंधित असतील, तर याचा अर्थ असा होतो की दोन टेबलमधील दोन रेकॉर्ड्सचे प्राथमिक की मूल्य समान आहे. म्हणून, जर तुम्हाला दोन ऑब्जेक्ट्स जोडायचे असतील जेणेकरून ते प्राथमिक की द्वारे संबंधित असतील, तर तुम्ही त्यांचे आयडी समान मूल्यावर सेट केले आहेत याची खात्री करणे आवश्यक आहे!
प्राथमिक की असोसिएशनसाठी, अनुक्रमे कर्मचारी आणि व्यक्ती वर्गांसाठी खालील मॅपिंग जोडा.
आता आपल्याला हे सुनिश्चित करणे आवश्यक आहे की टेबलमधील संबंधित रेकॉर्डच्या प्राथमिक कळा एकसारख्या आहेत. आम्ही एक विशेष हायबरनेट परदेशी जनरेटर वापरतो:
पर्सन क्लासच्या कायमस्वरूपी उदाहरणाला समान प्राथमिक की मूल्य नियुक्त केले जाते जे कर्मचारी वर्गाच्या उदाहरणास नियुक्त केले जाते ज्या व्यक्ती वर्गाच्या कर्मचारी मालमत्तेद्वारे संदर्भित केले जाते.
एका अनन्य विदेशी की द्वारे कर्मचारी ते व्यक्तीमधील एक-टू-एका संबंधांचे वर्णन करण्यासाठी पर्याय म्हणून, तुम्ही खालील नोटेशन वापरू शकता:
व्यक्ती वर्गाच्या मॅपिंगमध्ये खालील अभिव्यक्ती जोडून ही संघटना द्विदिशात्मक बनविली जाऊ शकते:
घटक
(1) |
नाव: मालमत्तेचे नाव (घटक ऑब्जेक्टचा संदर्भ देत). |
(2) |
वर्ग (पर्यायी - डीफॉल्टनुसार घटक प्रकार प्रतिबिंब वापरून निर्धारित केला जातो): घटक वर्गाचे नाव. |
(3) |
insert: सत्य वर सेट केल्यास, घटकाची प्रदर्शित फील्ड SQL INSERT क्वेरींमध्ये भाग घेतात. |
(4) |
अद्यतन: सत्य वर सेट केल्यास, घटकाची प्रदर्शित फील्ड SQL अद्यतन क्वेरींमध्ये भाग घेतात. |
(5) |
प्रवेश (पर्यायी - मालमत्तेसाठी डीफॉल्ट): या बीनला त्याच्या मूळ ऑब्जेक्टद्वारे प्रवेश करताना हायबरनेटने वापरावे. |
नेस्टेड टॅग
घटक
घटक
शेवटी, पॉलिमॉर्फिक पर्सिस्टन्ससाठी बेस क्लासचे प्रत्येक उपवर्ग घोषित करणे आवश्यक आहे. (शिफारस केलेल्या) प्रदर्शन धोरणासाठी, सारणी-प्रति-वर्ग-पदानुक्रम घटक वापरते
प्रत्येक उपवर्गाने स्वतःचे पर्सिस्टंट फील्ड आणि उपवर्ग घोषित केले पाहिजेत. मालमत्तेचा वारसा परवानगी आहे
वैकल्पिकरित्या, एक उपवर्ग ज्याच्या वस्तू वेगळ्या सारणीमध्ये संग्रहित केल्या जातात (सारणी-प्रति-उपवर्ग मॅपिंग धोरण) घटक वापरून घोषित केले जाते.
या डिस्प्ले स्ट्रॅटेजीला डिस्क्रिमिनेटर कॉलम निर्दिष्ट करणे आवश्यक नाही. तथापि, प्रत्येक उपवर्गाने एक सारणी स्तंभ घोषित करणे आवश्यक आहे ज्यात घटकाद्वारे प्रदर्शित करण्यासाठी अभिज्ञापक समाविष्ट आहे
पर्सिस्टंट स्टेटमध्ये इतर घटकांचे संदर्भ आणि मूल्य प्रकारांची उदाहरणे असतात. मूल्ये ही आदिम, संग्रह, घटक आणि इतर अपरिवर्तनीय वस्तू आहेत. घटकांच्या विपरीत, मूल्य प्रकार उदाहरणे (विशेषत: संग्रह आणि घटक) टिकून राहतात आणि उपलब्ध असताना हटवल्या जातात. मूल्य प्रकारच्या वस्तू (आणि आदिम) त्यांच्या समाविष्ट असलेल्या घटकासह संग्रहित आणि हटविल्या जात असल्याने, त्यांची स्वतंत्र आवृत्ती असू शकत नाही. मूल्यांना देखील स्वतंत्र ओळख नसते आणि अशा प्रकारे दोन संस्था किंवा संग्रहांमध्ये सामायिक केले जाऊ शकत नाही.
हायबरनेटमधील सर्व प्रकार, संग्रह वगळता, शून्य पॉइंटर सिमेंटिक्सला समर्थन देतात.
या बिंदूपर्यंत, आम्ही संस्थांचा संदर्भ देण्यासाठी "परसिस्टंट क्लास" हा शब्द वापरला आहे. आम्ही हे करत राहू. काटेकोरपणे सांगायचे तर, पर्सिस्टंट स्टेटसह सर्व वापरकर्ता-परिभाषित वर्ग संस्था नाहीत. उदाहरणार्थ, घटक हा मूल्य-प्रकार शब्दार्थांसह वापरकर्ता-परिभाषित वर्ग असतो (घटक हे घटकांचा भाग असतात ज्यात ते असतात आणि त्या घटकांचे फील्ड मानले जातात).
मूलभूत प्रकारांची ढोबळमानाने खालीलप्रमाणे विभागणी करता येईल
पूर्णांक, लांब, लहान, फ्लोट, दुहेरी, वर्ण, बाइट, बुलियन, होय_नाही, खरे_असत्य
सारणी स्तंभांच्या संबंधित (विक्रेता-अवलंबित) SQL प्रकारांसाठी आदिम Java प्रकार किंवा रॅपर वर्गांचे मॅपिंग. boolean, yes_no, आणि true_false हे Java प्रकार boolean किंवा java.lang.Boolean साठी पर्यायी नोटेशन आहेत.
स्ट्रिंगjava.lang.String प्रकार VARCHAR (किंवा Oracle VARCHAR2) वर मॅप करणे.
तारीख, वेळ, टाइमस्टॅम्पjava.util.Date प्रकार आणि त्याचे उपवर्ग DATE, TIME आणि TIMESTAMP (किंवा समतुल्य) SQL प्रकारांमध्ये मॅप करणे.
कॅलेंडर, कॅलेंडर_तारीखjava.util.Calendar प्रकार SQL प्रकार TIMESTAMP आणि DATE (किंवा समतुल्य) वर मॅप करणे.
मोठा_दशांशमॅपिंग प्रकार java.math.BigDecimal ते NUMERIC (किंवा ओरॅकल NUMBER).
लोकॅल, टाइमझोन, चलनjava.util.Locale, java.util.TimeZone आणि java.util.Currency प्रकार VARCHAR (किंवा Oracle VARCHAR2) वर मॅप करणे. लोकेल आणि चलन उदाहरणे त्यांच्या ISO कोडमध्ये मॅप केली जातात. टाइमझोन उदाहरणे त्यांच्या अभिज्ञापकांवर (आयडी) मॅप केली जातात.
वर्गमॅपिंग प्रकार java.lang.Class to VARCHAR (किंवा Oracle VARCHAR2). वर्ग त्याचे पूर्ण नाव म्हणून प्रदर्शित केले आहे.
बायनरीसंबंधित बायनरी SQL प्रकारासाठी नकाशे बाइट ॲरे.
मजकूरSQL CLOB किंवा TEXT मध्ये लांब Java स्ट्रिंग दाखवते.
अनुक्रमे करण्यायोग्यसंबंधित बायनरी SQL प्रकारांसाठी नकाशे अनुक्रमे करण्यायोग्य Java प्रकार. तुम्ही हायबरनेट सीरिअलायझ करण्यायोग्य प्रकार हा सीरिलायझ करण्यायोग्य Java वर्ग किंवा इंटरफेसचे नाव म्हणून देखील दर्शवू शकता जो बेस प्रकार नाही आणि PersistentEnum इंटरफेस लागू करत नाही.
क्लोब, ब्लॉबjava.sql.Clob आणि java.sql.Blob वर्गांचे JDBC प्रकार मॅपिंग. हे प्रकार काही ऍप्लिकेशन्ससाठी गैरसोयीचे असू शकतात कारण ब्लॉब आणि क्लॉब ऑब्जेक्ट्स व्यवहाराच्या बाहेर वापरल्या जाऊ शकत नाहीत. (याव्यतिरिक्त, ड्रायव्हर्स या प्रकारांना पूर्णपणे आणि एकसमान समर्थन देत नाहीत.)
बायनरी, ब्लॉब आणि क्लॉब वगळता संस्था आणि संग्रहांसाठी अद्वितीय अभिज्ञापक कोणत्याही मूलभूत प्रकारचे असू शकतात. (संमिश्र अभिज्ञापकांना देखील अनुमती आहे, खाली पहा.)
मूलभूत मूल्यांचे प्रकार net.sf.hibernate.Hibernate मध्ये घोषित केलेल्या स्थिरांकांद्वारे वर्णन केले जातात. उदाहरणार्थ, हायबरनेट.STRING हा स्ट्रिंग प्रकार दर्शवतो.
जेव्हा वर्गामध्ये स्थिर (लहान) संख्या बदलता येण्याजोगी उदाहरणे असतात (जावा 5 मधील भाषांतरकाराची टीप ही भाषा स्तरावर सादर केली गेली होती, पूर्वीच्या आवृत्त्यांमध्ये यासाठी एक विशेष नमुना वापरण्यात आला होता). तुम्ही net.sf.hibernate.PersistentEnum इंटरफेस लागू करून आणि toInt() आणि fromInt() ऑपरेशन्स परिभाषित करून पर्सिस्टंट एनम प्रकार तयार करू शकता:
पॅकेज उदा; net.sf.hibernate.PersistentEnum आयात करा; सार्वजनिक वर्ग रंग PersistentEnum (खाजगी अंतिम इंट कोड; खाजगी रंग (इंट कोड) ( this.code = code; ) लागू करतो सार्वजनिक स्थिर अंतिम रंग TABBY = नवीन रंग(0); सार्वजनिक स्थिर अंतिम रंग GINGER = नवीन रंग(1); सार्वजनिक स्टॅटिक फायनल कलर ब्लॅक = नवीन कलर(2); पब्लिक इंट टू इंट() (रिटर्न कोड;) पब्लिक स्टॅटिक कलर फ्रॉम इंट(इंट कोड) (स्विच (कोड) ( केस 0: रिटर्न टॅबी; केस 1: रिटर्न जिंजर; केस 2: रिटर्न ब्लॅक: नवीन रनटाइम अपवाद ("अज्ञात रंग कोड");
हायबरनेट प्रकाराचे नाव फक्त गणना केलेल्या वर्गाचे नाव आहे, उदा. रंग.
विकसकांसाठी त्यांचे स्वतःचे मूल्य प्रकार तयार करणे तुलनेने सोपे आहे. उदाहरणार्थ, तुम्हाला java.lang.BigInteger टाइपचे गुणधर्म VARCHAR प्रकारच्या कॉलममध्ये साठवायचे असतील. हायबरनेट यासाठी अंगभूत प्रकार प्रदान करत नाही. परंतु सानुकूल प्रकार परिभाषित करणे हे गुणविशेष (किंवा संकलन घटक) एकाच टेबल स्तंभावर मॅपिंग करण्यापुरते मर्यादित नाही. तर, उदाहरणार्थ, तुमच्याकडे java.lang.String प्रकाराची getName()/setName() प्रॉपर्टी असू शकते जी FIRST_NAME, INITIAL, SURNAME स्तंभांमध्ये संग्रहित केली जाते.
सानुकूल प्रकार लागू करण्यासाठी, net.sf.hibernate.UserType किंवा net.sf.hibernate.CompositeUserType इंटरफेसपैकी एक कार्यान्वित करा आणि तुमच्या प्रकार अंमलबजावणीचे पूर्ण पात्र वर्ग नाव वापरून मालमत्ता घोषित करा. उपलब्ध क्षमतांसाठी net.sf.hibernate.test.DoubleStringType चे पुनरावलोकन करा.
टीप: टॅग वापरा
जरी हायबरनेटच्या अंगभूत प्रकार आणि घटक समर्थनाचा अर्थ असा आहे की आपल्याला क्वचितच सानुकूल प्रकार वापरण्याची आवश्यकता आहे, तरीही आपल्या अनुप्रयोगामध्ये वारंवार वापरल्या जाणाऱ्या प्रकारांसाठी (नॉन-एटीटी) वर्ग म्हणून त्यांचा वापर करणे चांगले आहे. उदाहरणार्थ, CompositeUserType साठी MonetoryAmount वर्ग हा एक चांगला उमेदवार आहे, जरी तो घटक म्हणून उघड केला जाऊ शकतो. मुख्य प्रेरणा अमूर्तता आहे. सानुकूल प्रकारांसह, तुमचे मॅपिंग दस्तऐवज तुम्ही चलन प्रकाराचे प्रतिनिधित्व बदलल्यास भविष्यात संभाव्य बदलांसाठी अधिक लवचिक असेल.
गुणधर्म प्रदर्शित करण्यासाठी आणखी एक प्रकार आहे. डिस्प्ले घटक
मेटा-टाइप विशेषता ॲप्लिकेशनला सानुकूल प्रकार परिभाषित करण्यास अनुमती देते जे सतत वर्गांसाठी डेटाबेस स्तंभ मूल्ये मॅप करते ज्यांचे अभिज्ञापक गुणधर्म id-प्रकार द्वारे परिभाषित केलेल्या प्रकाराचे असतात. जर मेटा-प्रकार java.lang.Class entities परत करत असेल, तर इतर कशाचीही गरज नाही. इतर प्रकरणांमध्ये, जेव्हा ते स्ट्रिंग किंवा वर्ण सारखे बेस प्रकार असेल, तेव्हा तुम्ही मूल्ये वर्गांमध्ये मॅप करणे आवश्यक आहे.
(1) |
नाव: मालमत्तेचे नाव. |
(2) |
आयडी-प्रकार: आयडेंटिफायर प्रकार. |
(3) |
मेटा-प्रकार (पर्यायी - वर्गासाठी डीफॉल्ट): एक प्रकार जो java.lang.Class ला एकाच डेटाबेस कॉलममध्ये मॅप करतो, किंवा पर्यायाने भेदभाव करणारा मॅप करण्याची परवानगी असलेला प्रकार. |
(4) |
कॅस्केड (पर्यायी - डीफॉल्ट टू नही): कॅस्केड ऑपरेशनचा प्रकार. |
(5) |
प्रवेश (पर्यायी - मालमत्तेसाठी डीफॉल्ट): हायबरनेटने मालमत्तेच्या मूल्यामध्ये प्रवेश करण्यासाठी वापरावे. |
हायबरनेट 1.2 मध्ये स्वत:चे स्थान असलेली जुनी ऑब्जेक्ट प्रॉपर्टी अद्याप समर्थित आहे परंतु ती नापसंत केली गेली आहे.
तुम्ही हायबरनेटला SQL स्टेटमेंटमध्ये आयडेंटिफायर उद्धृत करण्यासाठी सक्ती करू शकता. हायबरनेट निर्दिष्ट SQL बोलीनुसार कोटिंग नियमांचे पालन करेल (सामान्यत: दुहेरी अवतरण, परंतु SQL सर्व्हरसाठी कंस आणि MySQL साठी बॅककोट्स).
तुम्ही हायबरनेट-मॅपिंग घटकाच्या आत, स्वतंत्र दस्तऐवजांमध्ये सबक्लास आणि जोडलेले-उपवर्ग मॅपिंग घोषित करू शकता. हे नवीन मॅपिंग फाइल जोडून वर्ग पदानुक्रम वाढविण्यास अनुमती देते. या दृष्टिकोनासह, तुम्ही सबक्लास मॅपिंगमध्ये प्री-मॅप केलेल्या सुपरक्लासचे नाव असलेले विस्तारित गुणधर्म निर्दिष्ट करणे आवश्यक आहे. या वैशिष्ट्याचा वापर केल्याने मॅपिंग दस्तऐवजांची यादी महत्त्वाची ठरते.
वेबसाइटसाठी चांगले नेव्हिगेशन विकसित करणे हा प्रकल्प चांगल्या प्रकारे प्रगतीपथावर येण्यासाठी आणि अभ्यागतांना माहितीसाठी सर्व कोनाडे आणि क्रॅनीज (बुकमार्क, प्रतिमा, मजकूर इ.) तपासण्यासाठी साइट एक्सप्लोर करण्यास सुरुवात करण्यासाठी मुख्य घटकांपैकी एक आहे. पहा आणि तुमच्या स्वतःच्या उत्कृष्ट प्रकल्पांसाठी प्रेरित व्हा.
अनुपालन: 7
मोबाइल ॲप्लिकेशन्स डिझाइन करताना, विकसकाला विविध अडचणींचा सामना करावा लागतो ज्यामुळे सर्व प्रयत्न नष्ट होऊ शकतात. या धड्यात आम्ही मोबाइल डिव्हाइसच्या आवृत्त्यांवर काम करताना सर्वात कपटी आणि सामान्य चुकांपैकी 6 वर्णन करू.
अनुपालन: 7
या पाठात आपण टाइपरायटरच्या रूपात मूळ संदेश फॉर्म कसा तयार करायचा ते शोधू. या अप्रचलित युनिटची सर्व मुख्य कार्ये CSS आणि jQuery वापरून काळजीपूर्वक पुनर्संचयित केली जातील.
अनुपालन: 7
येथे तुम्ही ई-कॉमर्स साइट्सबद्दल सत्य जाणून घ्याल: या क्षेत्रातील नवीनतम संशोधनानुसार, किमान 59.8% संभाव्य खरेदीदारांनी त्यांच्या कार्टमध्ये जोडलेल्या गोष्टींसाठी पैसे देण्यास नकार दिला (MarketingSherpa 59.8%, SeeWhy 83% आणि MarketLive 62.14 %). मुख्य प्रश्न असा आहे: ग्राहक इतक्या वेळा खरेदी का सोडून देतात? वस्तुस्थिती अशी आहे की काही मूलभूत चुका आहेत ज्या ई-कॉमर्स वेबसाइट विकसक अनेकदा करतात. वापरकर्त्यांना आमची उत्पादने खरेदी करणे कठीण बनवणारी काही सामान्य तत्त्वे आहेत का? आणि आम्ही जे विकतो त्याची विक्री कामगिरी सुधारण्याचा काही अर्थपूर्ण मार्ग आहे का?
अनुपालन: 7
HTML5 मधील सर्वात छान नवीन वैशिष्ट्य म्हणजे फील्ड तयार करण्यासाठी डीफॉल्ट मजकूर जोडण्याची क्षमता. प्लेसहोल्डर विशेषता फॉर्म फील्ड्सना विशिष्ट मजकूर रिकामी असताना किंवा फोकसमध्ये नसताना प्रदर्शित करण्यास अनुमती देते (जेव्हा फील्डमध्ये फोकस असते, ते साफ केले जाते). हे एक स्टाइलिश वैशिष्ट्य आहे, परंतु तरीही ते सर्व ब्राउझरद्वारे समर्थित नाही. या ट्युटोरियलमध्ये मी तुम्हाला Modernizr हे दिलेल्या ब्राउझरद्वारे समर्थित आहे की नाही हे निर्धारित करण्यासाठी कसे वापरायचे ते दाखवेन आणि जर नसेल तर jQuery वापरून डायनॅमिकली डीफॉल्ट मजकुरासह फॉर्म फील्ड भरा.
अनुपालन: 7
वेबसाइट तयार करताना मॉड्यूलर ग्रिड महत्त्वपूर्ण मदत होऊ शकते. हे साइट घटकांसाठी दृश्य रचना आणि सामग्रीसाठी वातावरण दोन्ही प्रदान करते. संतुलित आणि सातत्यपूर्ण वेबसाइट तयार करण्याचा हा एक सोपा मार्ग आहे.
अनुपालन: 7
प्रोजेक्ट इंटरफेस विकसित करताना, वापरकर्त्यासाठी ते सोपे आणि समजण्यासारखे असावे असे आपल्याला नेहमी वाटते. तुमची वेबसाइट काय ऑफर करते हे महत्त्वाचे नाही, तुम्हाला साधेपणा आणि कार्यक्षमता यांच्यात संतुलन शोधण्याची आवश्यकता आहे. इतर पृष्ठे लोड न करता, आदर्शपणे, वापरकर्ता आपल्या प्रकल्पाची कोणतीही कार्ये सहजपणे शोधू आणि समजू शकेल याची खात्री करणे खूप महत्वाचे आहे.
अनुपालन: 7
मोठ्या संख्येने मॅन्युअली भरलेल्या फील्डसह फॉर्म सबमिट करण्यासाठी फक्त दोन वर्ण जोडणे आवश्यक असलेल्या वापरकर्त्याच्या भावनिक गोंधळाची कल्पना करा आणि अचानक सर्व डेटा गमावला. भयानक. जोपर्यंत, अर्थातच, सिसिफसचे भवितव्य टाळण्यासाठी डेटा पुनर्प्राप्त करण्याचा एक मार्ग आहे.
हा लेख नवीन कार्यक्षमतेची घोषणा आहे.
नवीन कार्यक्षमता जाणून घेण्यासाठी या लेखातील सामग्री वापरण्याची शिफारस केलेली नाही.
नवीन कार्यक्षमतेचे संपूर्ण वर्णन संबंधित आवृत्तीसाठी दस्तऐवजीकरणात प्रदान केले जाईल.
नवीन आवृत्तीतील बदलांची संपूर्ण यादी v8Update.htm फाइलमध्ये प्रदान केली आहे.
आवृत्ती 8.3.11.2867 मध्ये लागू.
आम्ही मोबाइल प्लॅटफॉर्म विकसित करणे सुरू ठेवतो, वैयक्तिक संगणकांसाठी प्लॅटफॉर्ममध्ये आधीच उपलब्ध असलेली कार्यक्षमता जोडत आहोत. याव्यतिरिक्त, आम्ही विशिष्ट प्लॅटफॉर्म क्षमता विकसित करत आहोत ज्या केवळ मोबाइल डिव्हाइससाठी संबंधित आहेत. आता आम्ही तुम्हाला काही महत्त्वाच्या सुधारणांबद्दल सांगणार आहोत.
"मोबाइल" शेड्यूलरचे ऑब्जेक्ट मॉडेल बदललेले नाही, परंतु वापरकर्त्याने शेड्यूलरशी संवाद साधण्याची पद्धत बदलली आहे, कारण मोबाइल डिव्हाइसवरील माहिती प्रविष्ट करण्याच्या पद्धती डेस्कटॉप संगणकांवर वापरल्या जाणाऱ्या पद्धतींपेक्षा भिन्न आहेत.
उदाहरणार्थ, घटकाचे द्रुत संपादन घटकावर एका क्लिकद्वारे केले जाते. दीर्घ दाबाने संदर्भ मेनू आणि मार्करचे स्वरूप समोर येते जे आपल्याला घटक ताणण्याची परवानगी देतात. ड्रॅगिंग लांब दाबून आणि नंतर आपले बोट हलवून केले जाते.
संपूर्ण प्लॅनर स्क्रोल करणे एका बोटाने स्क्रोल करणे, दोन बोटांनी झूम करणे इत्यादीद्वारे केले जाते.
"मोबाइल" शेड्यूलरच्या सध्याच्या अंमलबजावणीचे वैशिष्ट्य म्हणजे ते अद्याप मुद्रणास समर्थन देत नाही.
आम्ही मोबाईल प्लॅटफॉर्मवर जोडलेली आणखी एक "नवीन" वस्तू आहे स्वरूपित दस्तऐवज. वापरकर्त्याच्या दृष्टिकोनातून, “मोबाईल” स्वरूपित दस्तऐवज फक्त त्याच्या संपादन पॅनेलमध्ये स्वतःच नियंत्रणात तयार केलेला असतो आणि व्हर्च्युअल कीबोर्डचा तार्किक भाग असतो यातच वेगळे असते. तुम्हाला, विकासक म्हणून, ते कॉन्फिगरेशनमध्ये वेगळे जोडण्याची आवश्यकता नाही. मोबाइल डिव्हाइसच्या प्रकारानुसार (फोन किंवा टॅबलेट) संपादन पॅनेलचे स्वरूप वेगळे असते.
कॉन्फिगरेटरमध्ये, फॉर्म विकसित करताना, आम्ही मोबाइल डिव्हाइसवर तुमचा फॉर्म कसा दिसेल हे पाहण्याची क्षमता जोडली आहे.
कमांड पॅनेलमध्ये तुम्ही इंटरफेस पर्याय निवडू शकता मोबाइल डिव्हाइस, आणि मानक अभिमुखतेमध्ये फॉर्म कसा दिसेल ते पहा.
येथे आपण आपले मोबाइल डिव्हाइस फिरवू शकता.
याव्यतिरिक्त, आम्ही तुम्हाला मोठ्या संख्येने सामान्य डिव्हाइसेसमधून निवडण्याची संधी दिली आहे.
याव्यतिरिक्त, तुम्ही तीन वेगवेगळ्या स्केलमध्ये मोबाइल फॉर्म पाहू शकता:
आम्ही मोबाइल प्लॅटफॉर्मवर अनेक नवीन वस्तू जोडल्या आहेत ज्या तुम्हाला प्रदर्शित दस्तऐवजांचे पॅकेज तयार करण्याची परवानगी देतात. ही कार्यक्षमता पीसी प्लॅटफॉर्ममध्ये आढळलेल्या सारखीच आहे. अशा प्रकारे, आपण आता, उदाहरणार्थ, एकाच वेळी मुद्रणासाठी अनेक दस्तऐवज पाठवू शकता.
आम्ही Windows पुश सूचना सेवा (WNS, Windows Notification Services) साठी समर्थन लागू केले आहे. विंडोज फॅमिलीच्या प्लॅटफॉर्मवर मोबाइल ॲप्लिकेशन चालवताना आता तुम्ही डिलिव्हर केलेल्या नोटिफिकेशन्सची कार्यक्षमता वापरू शकता.
आम्ही वितरित सूचना पाठवण्यासाठी त्रुटी हाताळणी प्रणाली देखील पुन्हा तयार केली आहे. ज्या परिस्थितीत एक त्रुटी पूर्वी अपवाद म्हणून टाकली गेली होती, ती आता एक मूल्य म्हणून टाकली जाते जी तुम्ही अंगभूत भाषेत हाताळू शकता.
Android ऑपरेटिंग सिस्टम 4.4.2 आणि उच्च आवृत्तीवर, मोबाइल प्लॅटफॉर्म आता हार्डवेअर प्रवेग वापरते. यामुळे आम्हाला इंटरफेस रेंडरिंग गती 1.5 - 3 वेळा वाढवता आली.