यह अक्सर एक डीएओ में एक क्षेत्र के लिए उपयोगी होता है जिसका मूल्य एक जावा गणना से आता है। एक विशिष्ट उदाहरण एक लॉगिन डीएओ है जहां आपके पास आमतौर पर एक फ़ील्ड होता है जो उपयोगकर्ता को "NORMAL" या "ADMIN" के रूप में चिह्नित करता है। हाइबरनेट में, मैं इस संबंध को निम्न (अर्ध) प्रकार के तरीके से दर्शाने के लिए 2 वस्तुओं का उपयोग करूंगा:
class User {
String username;
String passwd;
UserType type;
}
class UserType {
private enum Type {ADMIN, NORMAL};
private String type;
//Setters/Getters for Hibernate
public void setType(String type);
public String getType();
//Setters/Getters for user
public void setUserType(UserType.Type t);
public UserType.Type getUserType();
public static UserType fromType(UserType.Type t);
}
यह काम करता है, लेकिन मुझे उपयोगकर्ताटाइप वर्ग अनजाने में मिलता है और बहुत अधिक नौकरशाही की आवश्यकता होती है ताकि कुछ मूल्यों को संग्रहीत किया जा सके। आदर्श रूप से, हाइबरनेट को सीधे एनम फ़ील्ड का समर्थन करना चाहिए और गणना मूल्यों को संग्रहीत करने के लिए एक अतिरिक्त तालिका बनाना होगा।
मेरा सवाल है: क्या हाइबरनेट में किसी गणन वर्ग को सीधे मैप करने का कोई तरीका है? यदि नहीं, तो क्या प्रतिरूपों का प्रतिनिधित्व करने के लिए मेरा पैटर्न काफी अच्छा है या मैं कुछ याद कर रहा हूं? लोग किस अन्य पैटर्न का उपयोग करते हैं?