मैं अपनी परियोजना के लिए जेपीए और हाइबरनेट का उपयोग करता हूं। मेरे पास के साथ दो वर्ग हैं लेकिन विभिन्न पैकेज में। वे हैं:जेपीए एक ही नाम के साथ दो वर्गों को कैसे पहचान सकता है लेकिन विभिन्न पैकेजों में?
@Entity(name = "X_USER")
@Table(name = "X_USER")
public class User {
और:
@Entity
@Table(name="Y_USER")
public class User {
मैं साथ एक खोज क्वेरी बनाने गया था: .getSimpleName()
लेकिन यह काम नहीं किया क्योंकि उनके सरल नाम एक ही हैं। मैंने इसे .getName()
में बदल दिया।
हालांकि, यह अभी भी User
पर वापस आने के लिए भ्रमित है।
संपादित करें:
मेरे पास है:
SELECT_BY_PROPERTY_QUERY = "SELECT p FROM :CLASS: p WHERE p.:PROPNAME:=?";
और मुझे लगता है कि:
SELECT_BY_PROPERTY_QUERY.replaceFirst(":CLASS:", clazz.getName()).replaceFirst(":PROPNAME:", propertyName);
और जब मैं यह डिबग यह कुछ ऐसा बना देता है:
Select p from User p Where p.name=?
यह अभी भी User
है और इसमें पैकेज जानकारी शामिल नहीं है और मुझे गलत User
कक्षा देता है।
'getName()' को FQN लौटाया जाना चाहिए। आप क्या त्रुटि प्राप्त कर रहे हैं? –
@ XaviLópez मैंने अपना प्रश्न संपादित किया है। – kamaci