"Zyklus gefunden" mit Spring Data Mongo 1.5
Habe ich ein Projekt perfekt ausgeführt mit Spring Data MongoDB 1.4.2.
Ich habe versucht ein update auf 1.5.0 und ich bekomme diese Fehlermeldung bei autowiring (Auszug) :
Verursacht durch: org.springframework.data.mongodb.core.index.MongoPersistentEntityIndexResolver$CyclicPropertyReferenceException: Gefunden-Zyklus für das Feld 'Regeln' in der Art 'Filter' für Pfad ' - filter.Regeln"
bei org.springframework.data.mongodb.core.index.MongoPersistentEntityIndexResolver$CycleGuard.protect(MongoPersistentEntityIndexResolver.java:370) ~[spring-data-mongodb-1.5.0.RELEASE.jar:na]
bei org.springframework.data.mongodb.core.index.MongoPersistentEntityIndexResolver$2.doWithPersistentProperty(MongoPersistentEntityIndexResolver.java:144) ~[spring-data-mongodb-1.5.0.RELEASE.jar:na]
bei org.springframework.data.mongodb.core.index.MongoPersistentEntityIndexResolver$2.doWithPersistentProperty(MongoPersistentEntityIndexResolver.java:138) ~[spring-data-mongodb-1.5.0.RELEASE.jar:na]
bei org.springframework.data.mapping.model.BasicPersistentEntity.doWithProperties(BasicPersistentEntity.java:294) ~[spring-data-commons-1.8.0.RELEASE.jar:na]
Habe ich ein repository "RulesDAO" einfach erweitern "MongoRepository". Es schafft ein Unternehmen mit dem Namen "Regel". Diese Entität hat einige grundlegende Felder und eine "Filter" - Feld. Und diese Filter-Klasse enthält eine Liste von Filtern (die auch leer sein kann).
@Document(collection="rules")
public class Rule {
@Id private String id;
private String name;
//other fields
private Filter filter;
}
public class Filter {
//for groups
private String condition;
private List<Filter> rules = new ArrayList<Filter>();
//for query
private String field;
private String value;
}
("Regeln" ist das nicht ein perfekter name, aber es muss benannt werden, auf diese Weise für MVC-Bindung)
Damit der Filter.Regeln-Eigenschaft wird interpretiert als ein Zyklus wo es nicht ! (gut, in meinem Verständnis des Begriffs "Zyklus")
Ist es ein bug in der Version oder ist es ein neuer "Flagge" für diesen Anwendungsfall ?
Dank
Für die hintergrund Geschichte, die Filter-Klasse kann entweder ein Blatt oder ein Knoten des Baumes verwendet, um erstellen Sie komplexe Kriterien, es ist gebaut aus dem JSON-jQuery-plugin von Minen http://mistic100.github.io/jQuery-QueryBuilder
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ihr code korrekt ist. Das log-Meldung ist nur
INFO
Ebene, Ihnen zu sagen, dass es potenzielle Zyklus verweisen in Ihrem code.Könnten Sie ignorieren, dass lästige Meldung durch drehen logger aus. Im Falle sind Sie mit Spring Boot, fügen Sie diese zu Ihrem
application.properties
- Datei:logging.level.org.springframework.data.mongodb.core.index=OFF
Den angegebenen Typen enthalten eine strcuture was potenziell zu Endlosschleifen beim Versuch Sie zu lösen, index, Informationen und/oder Lesen von Werten aus dem Speicher.
Während des Startvorgangs domain-Typen als auch generische Typ-Informationen der Sammlungen geprüft werden. Diese Punkte Zyklus erwähnt in der resultierenden Fehler.
Obwohl der Fehler sollte nicht verhindern, dass die container aus starten - sollte nur gedruckt werden, um die log. Vielleicht haben Sie zusätzlich lief in DATAMONGO-949 und möchten Ihnen die aktuelle 1.5.1-SNAPSHOT zu drehen.
Bitte fühlen Sie sich frei, um öffnen Sie ein ticket.
org.springframework.data.mongodb.core.index.MongoPersistentEntityIndexResolver$CyclicPropertyReferenceException: Found cycle for field 'iChronology' in type 'DateTime' for path 'fecha'
hat spring-session-Daten-mongodb:1.3.0.RELEASE werden mit diesem waring zu?Sie mit:
private List<Filter - > Regeln = new ArrayList<Filter - >();
dies ändern:
private List<?> Kind;
Ich Stand vor dem gleichen problem, aber nach der Verwendung dieses code ist in Ordnung, ohne Fehler.