使用@DBRef查询带循环引用的文档时的Stackoverflow

时间:2012-09-07 08:24:08

标签: java mongodb datanucleus spring-data spring-data-mongodb

我的应用程序将MongoDb与Spring-Data一起使用。

我的User.java如下。

User{
//other fields
    @DBRef
    List<Request> requests;
    }

Request.java如下。

   class Request{
    @Id
    private ObjectId id;
    @DBRef
    private User who;
    @DBRef
    private User whom;
    @DBRef
    private User group;
    }

我能够妥善保存。假设我的对象user1包含请求列表,对象request1包含user1作为who的值。当我检索user1对象时,我得到StackOverflowError。详情here。相关issue

除了使用Manual references之外,还有其他解决方法吗?是否有任何其他API正确处理循环引用。

1 个答案:

答案 0 :(得分:0)

答案:不要使用SpringData Mongodb,因为它有一个bug。 DataNucleus JDO和DataNucleus JPA没有与MongoDB具有双向关系持久性的错误。