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