Spring Data Mongo无法正确处理实体不正常

时间:2013-04-23 15:44:32

标签: spring mongodb spring-data-mongodb

我在我的项目中使用Spring Data Mongo,如下所示:

  1. Spring Data MongoDB 1.2 / Spring Data Commons 1.5
  2. Spring 3.2.2 RELEASE
  3. MongoDB / QueryDSL 2.9 / Mongo Java Driver 2.10.1
  4. 案例1: @Id来自spring数据公共,@ Document来自Spring数据Mongo。

    @Document
    class User{
        @Id String id;
    }
    
    
    @Document
    class Picture{
        @Id String id;
    }
    
    @Document 
    class Avatar extends Picture{
        @DBref User user;
    }
    

    我没有使用Spring Data Repostory api或QueryDSL,我无法通过用户获取头像数据。

    //decalred in repository
    List<Avatar> findByUser(User user);
    
    // or from the QueryDSL executor
    List<Avatar> avatars=rep.findAll(QAvatar.avatar.user.eq(user));
    

    所有返回空集合(当然其中都有一些数据)。

    案例2 :如果我删除@DBRef,在我第一次插入头像和用户之后,它就可以了,但是当我在User中更新数据时,则获取头像用户,返回空列表。

    @Document 
    class Avatar extends Picture{
        User user;
    }
    

    案例3 :将用户更改为字符串(userid),它可以正常工作。

    @Document 
    class Avatar extends Picture{
        String userId;
    }
    

    这里有关于MongoDB的java建模的建议吗?谢谢。

0 个答案:

没有答案