1

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

  1. Spring Data MongoDB 1.2/ Spring Data Commons 1.5
  2. 春季 3.2.2 发布
  3. MongoDB / QueryDSL 2.9/ Mongo Java 驱动程序 2.10.1

案例一: @Id 来自 Spring Data Commons,@Document 来自 Spring Data 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,在我插入头像和用户后,它可以工作,但是当我更新用户中的数据时,然后按用户获取头像,返回空列表。

@Document 
class Avatar extends Picture{
    User user;
}

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

@Document 
class Avatar extends Picture{
    String userId;
}

这里对 MongoDB 的 java 建模有什么建议吗?谢谢。

4

0 回答 0