2016-11-23 4 views
5

enter image description here मैं जेसन प्रारूप के किसी भी प्रकार से डेटा हो रही है और MongoDB को यह भंडारण के लिए JsonNode उपयोग कर रहा हूँ लेकिन जब से डेटा प्राप्त करने में mongoDB यह नीचे त्रुटि फेंक रहा है।तर्क के साथ निर्माता NO_CONSTRUCTOR का उपयोग कर com.fasterxml.jackson.databind.node.ObjectNode का दृष्टांत को MongoDB में विफल

Failed to instantiate com.fasterxml.jackson.databind.node.ObjectNode using constructor NO_CONSTRUCTOR with arguments

नीचे मेरे डोमेन वर्ग

public class Profiler { 

@Id 
private String id; 

@Field("email") 
private String email; 

@Field("profiler") 
private Map<String,JsonNode> profiler; 

public String getEmail() { 
    return email; 
} 
public void setEmail(String email) { 
    this.email = email; 
} 
public Map<String, JsonNode> getProfiler() { 
    return profiler; 
} 
public void setProfiler(Map<String, JsonNode> profiler) { 
    this.profiler = profiler; 
} 
public Profiler(String email,Map<String,JsonNode> profiler){ 
    this.email=email; 
    this.profiler = profiler; 
} 
@JsonCreator 
public Profiler(@JsonProperty("_id")String id,@JsonProperty("email")String email,@JsonProperty("profiler")Map<String,JsonNode> profiler){ 
    this.id=id; 
    this.email=email; 
    this.profiler = profiler; 
} 
public Profiler(String id){ 
    this.id=id; 
} 
public Profiler(Map<String,JsonNode> profiler){ 
    this.profiler = profiler; 
} 
public Profiler(){ 

} 

} 



public interface ProfilerRepository extends MongoRepository<Profiler, String>{ 
public Profiler findOneByEmail(String email); 
} 

है और मेरे नियंत्रक कॉल के रूप में नीचे है और मैं इस लाइन पर त्रुटि मिल रही है।

Profiler profile=profileService.findOneByEmail(email); 
+0

क्या आप अपना मोंगो दस्तावेज़ दिखा सकते हैं? – notionquest

उत्तर

4

मैंने यह परिवर्तन किया है और अपेक्षित काम किया है।

Map<String, Object> profile; 
1

यह समस्या होती है क्योंकि com.fasterxml.jackson.databind.node.ObjectNode वर्ग डिफ़ॉल्ट निर्माता (कोई तर्क निर्माता) नहीं है और जैक्सन डिफ़ॉल्ट निर्माता की उम्मीद है। अगर आप डोमेन वर्ग में के रूप में स्थिर profiler फ़ील्ड निर्धारित

Related Post refer azerafati's answer

समस्या हल किया जा सकता।

private static Map<String, JsonNode> profiler; 

कृपया ध्यान दें कि स्थिर क्षेत्रों की अपनी सीमाएं और मुद्दे हैं। मैं आश्वस्त कर सकता हूं कि यह उपर्युक्त अपवाद को हल करेगा। हालांकि, यह सबसे उपयुक्त समाधान नहीं हो सकता है।

+0

मैंने कोशिश की लेकिन यह काम नहीं कर रहा है। लेकिन मैंने जेसननोड के बजाय एक बदलाव किया है मैंने मैप <स्ट्रिंग, ऑब्जेक्ट> प्रोफाइलर जैसे ऑब्जेक्ट का उपयोग किया है; और विस्तार के रूप में काम कर रहे हैं। –

संबंधित मुद्दे