2014-10-17 945 views
2

在使用Spring-Data MongoDB尝试将Object保存到mongo数据库时,我得到了这个异常。如何在spring数据中使用@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的基本类型。你解决了这个问题吗? – 2015-02-05 15:06:31

回答

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!错误的另一种形式,是不是因为OP不太一样,考虑到你的孩子类可能甚至不需要一个场都和@sparm提供的答案可改为:

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

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

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

} 
相关问题