2016-11-23 15 views
5
gelen verileri alınırken ben Jason formatında her türlü veri alma ve mongodb bunu saklamak için JsonNode kullanarak Ama ediyorum

enter image description here mongoDB aşağıdaki gibi hata atıyor.MongoDB yılında argümanlarla yapıcı NO_CONSTRUCTOR kullanarak com.fasterxml.jackson.databind.node.ObjectNode örneklenemedi

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

Aşağıda alanım sınıf

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); 
} 

Ve benim denetleyicisi çağrı olarak aşağıda ve bu hat üzerinde hata alıyorum. com.fasterxml.jackson.databind.node.ObjectNode sınıf varsayılan bir kurucu (argüman yapıcı) yoktur ve Jackson varsayılan kurucu beklediği için

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

Eğer Mongo belgesini gösterir misin? – notionquest

cevap

4

Bu değişiklikleri yaptım ve beklendiği gibi çalışıyorum.

Map<String, Object> profile; 
1

Bu sorun oluşur. Etki alanı sınıfında statik profiler alanını tanımlarsanız

Related Post refer azerafati's answer

sorun

çözülebilir.

private static Map<String, JsonNode> profiler; 

Lütfen statik alanların kendi sınırlamaları ve sorunları olduğunu unutmayın. Bunun yukarıdaki istisnayı çözeceğini garanti edebilirim. Ancak, en uygun çözüm olmayabilir.

+0

Aynı şeyi denedim ama çalışmıyor. ama JsonNode yerine bir değişiklik yaptım Harita gibi bir nesne kullandım profiler; ve beklendiği gibi çalışıyor. –