Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

जेपीए मैपिंग व्यू और टेबल इनहेरिटेंस के साथ

मैं आपका view निर्दिष्ट करूंगा/करूंगी इकाई आपके मॉडल ऑब्जेक्ट के अंदर एक से एक संबंध के रूप में केवल पढ़ने के लिए पहुंच के साथ, यदि आपकी सभी तालिकाओं में एक समान दृश्य वस्तु है। आप इसे बिना किसी सेटर्स के गेटर्स लिखकर कर सकते हैं, क्योंकि किसी भी प्रकार के सेट को फायर करने के बाद सेविंग एक असफल क्वेरी चलाएगा। इस तरह इनहेरिटेंस का उपयोग करने से आप अपने सभी कॉलम को एक स्तर पर निर्दिष्ट करने के लिए लॉक हो जाएंगे, और आप नहीं जान पाएंगे कि कौन से कॉलम किस टेबल या व्यू से संबंधित हैं।

    Table.java
    package models;
    // relevant imports
    @entity("table")
    public class Table{
        @OneToOne(mappedBy = "table")
        private View view;
        public string getVariable();
        public string setVaraible();
    }

    View.java
    package models;
    // relevant imports
    @entity("view")
    public class View{
       @OneToOne
       @JoinColumn(name = "table_id")
       private Table table;

       public string getVariable();
       public string getVariable2();
       public string getVariable3();//etc, No setters.

       //alternatively use insertable//updateable=false on all column annotation
       @Column(name="variable_4", insertable =  false, updateable=false)
       public string getVariable4();
    }

मॉडल ऑब्जेक्ट प्रकार में उन सभी को एक साथ लंप करना ओआरएम को पहले स्थान पर रखने की वस्तु को हरा देता है, क्योंकि अब आपको ओआरएम की मूल सीआरयूडी कार्यक्षमता से मेल खाने के लिए बहुत से MySQL कोड लिखना होगा। यह आपकी ओर से अतिरेक होगा।

यहां वंशानुक्रम का उपयोग नहीं करने से वंशानुक्रम एक वास्तविक विकल्प के रूप में खुला रहता है, जिसे आप बाद में लाइन के नीचे उपयोग करना चुनते हैं। हर बार दृश्य में शामिल होना प्रदर्शन के लिए खराब हो सकता है, यह इस बात पर निर्भर करता है कि आपके विचार कितने अच्छे हैं, लेकिन उन सभी को एक ही वस्तु में न रखने से उस अर्थ में अधिक लचीलेपन की अनुमति मिलती है।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL रूट पासवर्ड कैसे रीसेट करें

  2. MySQL क्वेरी को मास्टर विवरण तालिका से अलग मूल्य अल्पविराम मिलता है

  3. डेटा तालिका में होने के बाद Laravel माइग्रेशन फ़ील्ड जोड़ें?

  4. phpmyadmin में उपयोगकर्ता परिभाषित कार्यों की mysql प्रदर्शन सूची

  5. उपयोगकर्ता प्रश्नों की गणना कैसे करें?