java - Why does Hibernate re-implement functionality that databases already have? -


उदाहरण के लिए:

  @Table (name = "stock", catalog = "mkyong ", अद्वितीय कॉन्फ़स्टेन्स = {@ अनियंत्रित संयत (स्तंभ नाम =" STOCK_NAME "), @ अनिक कंटेंट (स्तंभ नाम =" STOCK_CODE ")}})  

या

  @Column (नाम = "STOCK_NAME", अनन्य = सच, रिक्त = गलत, लंबाई = 20)  

'अद्वितीय', 'रिक्त' जैसी प्रतिबन्धियां, यहां तक ​​कि क्षेत्र की लंबाई कोर डेटाबेस विशेषताएँ हैं। यहां यह क्यों शामिल है? इसके अलावा (हालांकि यह कुछ नुकसान कर सकता है) मैं यह भी दांव लगाता हूं कि इस तरह की बाधाओं के एक डेटाबेस के कार्यान्वयन, विशेषकर ऑर्केकल जैसे मुख्य धारा वाले वाणिज्यिक डीबी, संभवतः ओएसएस सीतनिद्रा में होना devs के साथ आ सकते हैं।

यह हाइबरनेट में इस प्रकार के सामान का उपयोग करने के लिए बुद्धिमान है, या क्या यह बाधाओं को रखने और डेटाबेस में इस तरह का बेहतर अभ्यास है? ऐसा लगता है कि यदि आप इन सीतनिद्रा में होना सुविधाओं का उपयोग करते हैं, तो आप वास्तव में डाटाबेस को फ़ाइल सिस्टम के रूप में इलाज कर रहे हैं, तो क्या बात है? इसका उपयोग हर जगह है, लेकिन मैंने अभी तक ऐसा दस्तावेज़ीकरण नहीं पाया है कि आप ऐसा क्यों करते हैं।

यह उनको लागू नहीं करता है - इसके पास स्कीमा के खिलाफ डेटा मॉडल को मान्य करने का विकल्प है, या इसे बनाना

hibernate.hbm2ddl.auto संपत्ति वह है जो आपको मैपिंग के आधार पर स्कीमा बनाने की अनुमति देता है।

स्वचालित रूप से मान्य या निर्यात करता है स्कीमा डीडीएल को डेटाबेस में जब SessionFactory बनाया जाता है बनाएँ-ड्रॉप के साथ, सत्र स्कीमा को तब गिरा दिया जाएगा जब सत्र Efficiently बंद हो जाएगा।

उदाहरण के लिए मान्य करें | अपडेट | बनाओ |


Comments