У меня есть проект, прекрасно работающий с Spring Data MongoDB 1.4.2. Я попытался обновить до 1.5.0, и я получаю эту ошибку во время autowiring (extract):
Вызывается: org.springframework.data.mongodb.core.index.MongoPersistentEntityIndexResolver $ CyclicPropertyReferenceException: Найден цикл для полевых правил в типе "Фильтр" для path 'filter.rules'
на org.springframework.data.mongodb.core.index.MongoPersistentEntityIndexResolver $ CycleGuard.protect(MongoPersistentEntityIndexResolver.java:370) ~ [spring-data-mongodb-1.5.0.RELEASE.jar: na]
на org.springframework.data.mongodb.core.index.MongoPersistentEntityIndexResolver $ 2.doWithPersistentProperty(MongoPersistentEntityIndexResolver.java:144) ~ [spring-data-mongodb-1.5.0.RELEASE.jar: na]
на org.springframework.data.mongodb.core.index.MongoPersistentEntityIndexResolver $ 2.doWithPersistentProperty(MongoPersistentEntityIndexResolver.java:138) ~ [spring-data-mongodb-1.5.0.RELEASE.jar: na]
на org.springframework.data.mapping.model.BasicPersistentEntity.doWithProperties(BasicPersistentEntity.java:294) ~ [spring-data-commons-1.8.0.RELEASE.jar: na]
У меня есть репозиторий "RulesDAO", просто расширяющий "MongoRepository". Он управляет организацией с именем "Правило". Этот объект имеет некоторые базовые поля и поле "Фильтр". И этот класс фильтра содержит список фильтров (который может быть пустым).
@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;
}
("правила" не являются идеальным именем, но его нужно назвать таким образом для привязки MVC)
Таким образом, свойство Filter.rules интерпретируется как цикл, где это не так! (хорошо в моем понимании термина "цикл")
Это ошибка в выпуске или есть новый "флаг" для этой утилиты?
благодаря
Для предыстории класс фильтра может быть либо листом, либо узлом дерева, используемым для построения сложных критериев, он построен из JSON плагина jQuery на шахтах http://mistic100.github.io/jQuery-QueryBuilder