पर DiscriminatorValue प्राप्त करने के लिए हमारे पास निम्न वर्गोंकैसे रन टाइम
@Entity
@Inheritance(strategy = InheritanceType.SINGLE_TABLE) // optional annotation as this is default
@DiscriminatorColumn(name = "apType", discriminatorType = DiscriminatorType.STRING, length = 255)
@DiscriminatorValue("AP")
public class ApplicationProcess {
}
और यह
@Entity
@DiscriminatorValue("APS")
public class ApplicationProcessScheme extends ApplicationProcess {
}
अब मैं कार्यावधि में जानना चाहते हैं कि ApplicationProcess
DiscriminatorValue
AP or APS
की है की जरूरत है। चूंकि यह स्वचालित रूप से जेपीए द्वारा संभाला जाता है, इसलिए मेरे पास यह मान प्राप्त करने का कोई तरीका नहीं है।
हम एक विधि को कॉल कर रहे हैं जो ApplicationProcess
पैरामीटर के रूप में लेता है, और मैं यह देखने के लिए instanceof
का उपयोग करना चाहता हूं कि यह किस प्रकार है। कूलर नहीं होगा अगर मैं की तरह
applicationProcess.getApType().equals("AP");
@ शेरविन: आप कर सकते हैं, लेकिन यह एक अच्छा विचार नहीं है, आपका तर्क उस पर भरोसा नहीं करना चाहिए । –
@ पास्कल: मुझे लगता है कि मुझे करना है। एक्सएचटीएमएल पक्ष पर मेरे पास 'आवृत्ति' (मुझे लगता है) कहने के लिए ईएल अभिव्यक्ति में कोई रास्ता नहीं है। तो मुझे इसकी आवश्यकता हो सकती है। –
@ शेरविन: मुझे ऐसा कहने में खेद है, लेकिन ऐसा लगता है कि आपके डिजाइन में एक बड़ी गड़बड़ी है, ** देखें ** को कभी भी भेदभाव करने वाले मूल्य पर भरोसा नहीं करना चाहिए (यह व्यवसाय कोड के लिए भी सही है लेकिन इसके लिए और भी कुछ दृश्य)। –