Frühjahr Mongodb - Konnte nicht instanziiert bean-Klasse [java.util.Liste]: die Angegebene Klasse ist eine Schnittstelle

mein Projekt mit Spring data mongodb. Ich war nicht mit unter der Fehler, bis ich einen Bearbeiten, um ein Dokument mit einem Feld mit einem Array von Dokumenten. Es war in Ordnung arbeiten, bevor aber jetzt ich bekomme immer folgende Fehlermeldung.

Bereich habe ich aktualisiert, war impapps in den Projekten POJO-Klasse. Ich bin mir nicht sicher, wie klar diese Fehler haben verschiedene Dinge ausprobiert, aber hat nicht geklappt.

    SEVERE: Servlet.service() for servlet [appServlet] in context with path [/mongodproject] threw exception [Request processing failed; nested exception is org.springframework.data.mapping.model.MappingInstantiationException: Could not instantiate bean class [java.util.List]: Specified class is an interface] with root cause
org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [java.util.List]: Specified class is an interface
    at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:101)
    at org.springframework.data.convert.ReflectionEntityInstantiator.createInstance(ReflectionEntityInstantiator.java:60)
    at org.springframework.data.mongodb.core.convert.MappingMongoConverter.read(MappingMongoConverter.java:232)
    at org.springframework.data.mongodb.core.convert.MappingMongoConverter.read(MappingMongoConverter.java:212)
    at org.springframework.data.mongodb.core.convert.MappingMongoConverter.readValue(MappingMongoConverter.java:1008)
    at org.springframework.data.mongodb.core.convert.MappingMongoConverter.access$100(MappingMongoConverter.java:75)
    at org.springframework.data.mongodb.core.convert.MappingMongoConverter$MongoDbPropertyValueProvider.getPropertyValue(MappingMongoConverter.java:957)
    at org.springframework.data.mongodb.core.convert.MappingMongoConverter.getValueInternal(MappingMongoConverter.java:713)

Hier sind meine POJO und Spring Repository-Klasse.

Projekt POJO-Klasse

@Document(collection="releases")
 public class Project {
@Id
private String id;
 ......
@Field("impapps")
private List<ImpactedApplications> impapps=new ArrayList<ImpactedApplications>();
    .....getters/setters
}   

ImpactedApplication POJO-Klasse:

public class ImpactedApplications {

@Field("appid")
private String appId;
.....
@Field("repository")
private List<ScriptsRepo> rep=new ArrayList<ScriptsRepo>();
@Field("artifacts")
private List<Artifacts> artifacts=new ArrayList<Artifacts>();
     //getter and setters

}

Artefakte POJO-Klasse

public class Artifacts {

    @Field("artifacttype")
    private String artifactType;
    @Field("documentlink")
    private String documentLink;
    @Field("arttestphase")
    private String artTestPhase;
    @Field("artifactname")
    private ArtifactsEnums artifactsNames;
    @Field("startdate")
    private String startDate;
    @Field("enddate")
    private String endDate;
    @Field("peerrev")
    private boolean peerReview;
    @Field("busrev")
    private boolean busReview;
    @Field("na")
    private boolean na;

Frühjahr Repository-Klassen

public interface ProjectRepository extends Repository<Project, String> {

Project findById(String id);
List<Project> findByYearAndReleaseMonthNoOrderByProjectNameDesc(String year,String month, Sort sort);
Project findByYearAndReleaseMonthNoAndId(String year, String month,String id);

Immer, wenn ich rufen Sie die oben genannten Methoden, dass ich immer die Ausnahme.

Unten ist, wie mein Dokument ist derzeit auf der Suche.

Frühjahr Mongodb - Konnte nicht instanziiert bean-Klasse [java.util.Liste]: die Angegebene Klasse ist eine Schnittstelle

Was tun die Dokumente so Aussehen, wie Sie versuchen, zu Lesen? Können Sie überprüfen, dass die Werte der impapps, repository und artifacts arrays sind in MongoDB? Wenn dem so ist, die read(…) Methode ausgeführt werden soll in der typeToUse.isCollectionLike() && dbo instanceof BasicDBList - Klausel und ordnungsgemäß erstellen eine Sammlung für die Eigenschaft. Ich gehe davon aus, dass du eher etwas finden, nicht ist ein array und damit die entity-Auflösung kicks in. PS: Würden Sie mir richtig mit der Formatierung der code-Beispiele? Macht die post deutlich besser zu Lesen und wird wahrscheinlich mehr Menschen zu beantworten.
Vielen Dank für Ihre Antwort. Ich formatierte meine Frage ein bisschen. Und ich habe die document pic angehängt. impappa erstellt ein array, artifacts erstellt wird, als array und repository ist derzeit als leere array-aktuell.
nun, wenn ich es in der Nähe..ich sehe, dass impapps ist die Speicherung als Dokument anstelle eines Arrays von Dokumenten..ich denke, es gibt Probleme in meinem code. Wenn ich edit die impapps wie es aussieht, ist nicht die Speicherung als array, sondern als ein Dokument.
Seit Sie hier sind..kannst du mir bitte sagen, was ist der richtige Weg, um zu aktualisieren ein spannendes Dokument in ein array..ich versuchte dieses aber es ist einfach zu ersetzen als Dokument. Criteria crit=new Criteria().andOperator( Criteria.where("_id").is(projectId), Criteria.where("impapps.appid").is(impapp.getAppId()) );Query query=new Query(crit);Update upd=new Update(); upd.set("impapps", impapp);mongoTemplate.updateFirst(query, upd, Project.class)
nevermind sir. Ich habe es durch hinzufügen einer $ - Zeichen. Danke für den Blick in die post. Sie haben tolle Ferien!!

InformationsquelleAutor VBJ | 2013-12-18

Schreibe einen Kommentar