2014-10-17 2 views
2

При попытке сохранить объект в базу данных mongo с использованием Spring-Data MongoDB, я получаю это исключение.Как устранить проблему с использованием @DocumentField в данных весны mongoDB

Ambiguous field mapping detected! Both <child class field> and <parent class field> map to the same field name <field name>! Disambiguate using @DocumentField annotation! 

Я скрываю поле в классе детей, и это вызывает проблему. Но для меня очень важно скрыть поле, объявленное в суперклассе. Я не могу найти @DocumentField аннотации в любом месте. Как я могу продолжить здесь? Есть ли другое решение?

+0

у меня такая же проблема, так как я хотел бы хранить базовый тип как в MongoDB и Neo4j. Вы решили эту проблему? –

ответ

0

Я считаю, что это ошибка в исключении. Вы должны использовать @Field вместо и указать другое имя параметра так:

public class Parent { 
    private String myField; 
} 

@Document(collection = "children") 
public class Child extends Parent { 
    @Field("childField") 
    private String myField; 
} 
0

Для тех из вас (как я), кто приехал сюда из-за другой формы Ambiguous field mapping detected! ошибки, не совсем такой же, как ОП, считаю, что ваш класс ребенок не может даже нужно поле вообще и ответ предоставленного @sparm может быть изменен на:

public class Parent { 
    private String myField; 
    public getMyField() { 
     return myField; 
    } 
} 

@Document(collection = "children") 
public class Child extends Parent { 

    public getMyField() { 
     super.getMyField(); 
    } 

} 
Смежные вопросы