मुझे Google App Engine में एक ऐप मिला है जो ठीक काम कर रहा था। मुझे एहसास हुआ कि मेरी जेडीओ-एन्हांस्ड ऑब्जेक्ट्स में से एक जो मैं बराबर और हैशकोड को लागू करना भूल गया था (मुझे ऑब्जेक्ट को एक सेट में उपयोग करने की आवश्यकता है)। तो मैंने किया। मैंने वास्तव में इन कार्यान्वयन में कुछ भी विशेष नहीं किया, वास्तव में मैंने उन्हें उत्पन्न करने के लिए ग्रहण का उपयोग किया। इसलिए जैसा:Google ऐप इंजन, जेडीओ, और बराबर/हैशकोड
@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
private Long id;
@Persistent
private String appleId;
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result
+ ((appleId == null) ? 0 : appleId.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
User other = (User) obj;
if (appleId == null) {
if (other.appleId != null)
return false;
} else if (!appleId.equals(other.appleId))
return false;
return true;
}
अब
तो, जब मैं एप्लिकेशन में किसी भी यूआरएल को हिट करने के लिए प्रयास करें, यह अपवाद फेंक दिया जाता है:
/adduser javax.jdo.JDOUserException: लगातार वर्ग "वर्ग कॉम। bpapa.myapp.domain.User को बढ़ाया नहीं प्रतीत होता है। आप विस्तारक को फिर से चालू करना और आउटपुट में त्रुटियों की जांच करना चाहते हैं। " डेटाबेस में कोई टेबल नहीं है, लेकिन ऑपरेशन की आवश्यकता है। कृपया इस कक्षा के लिए मेटाडेटा के विनिर्देश की जांच करें। org.datanucleus.jdo.NucleusJDOHelper.getJDOExceptionForNucleusException (NucleusJDOHelper.java:427) org.datanucleus.jdo.JDOQuery.execute (JDOQuery.java:249) पर com.bpapa.myapp.servlet.AddUserServlet.doPost पर (कम से AddUserServlet.java:34)
मैंने क्या गलत किया है पर कोई विचार?
स्वच्छ निश्चित चीजें करना। – bpapa