我在我的项目中使用Spring Data Mongo,如下所示:
案例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建模的建议吗?谢谢。