如何在spring数据mongoDB中使用@DocumentField消除歧义

时间:2014-10-17 12:15:09

标签: spring-data spring-data-mongodb

在尝试使用Spring-Data MongoDB将对象保存到mongo数据库时,我遇到了这个异常。

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 注释。我该怎么办?还有其他解决方案吗?

2 个答案:

答案 0 :(得分:0)

我相信它在异常中是错误的。您需要使用@Field,并为参数指定其他名称:

public class Parent {
    private String myField;
}

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

答案 1 :(得分:0)

对于那些因为Ambiguous field mapping detected!错误与OP不完全相同而来到这里的人(比如我),请考虑您的孩子班级可能根本不需要一个字段而且答案是@sparm提供的内容可以更改为:

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

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

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

}