Spring mongodb @DBRef本身

时间:2014-11-04 21:56:49

标签: java spring mongodb spring-security

是否可以将@DBRef添加到引用自己的列表中。我想一个例子可以解释我的问题:

@Document(collection = "user")
public class User {
    @Indexed(unique = true, direction = IndexDirection.DESCENDING, dropDups = true)
    private final String uname;

    ...

    @DBRef 
    private  List<User>  contacts; // <-- The Problem

    ... (Getter / Setters, etc.)

}

如果我运行代码,控制台会给我错误:

Caused by: com.mongodb.MongoException$DuplicateKey: { "serverUsed" ...

是否可以修复我的代码,或者我是否必须创建一个新文档作为参考?

修改

我现在有一个奇怪的问题。为了测试,我在用户类中评论了contacts变量。

@Document(collection = "user")
public class User {

    @Id
    private final   String      uid;

    @Indexed(unique = true, direction = IndexDirection.DESCENDING, dropDups = true)
    private final   String      uname;

    ...

    //private  List<String>  contacts;

    @DBRef private  Role        role;

    ...

}

但错误显示:

duplicate key error index: test.user.$contacts.uname  dup key: { : null }" , "code" : 11000}

如果联系人列表被注释,$contacts.uname来自哪里?我已经重新启动了mongodb服务器并删除了我的收藏。

0 个答案:

没有答案