[英]Spring + MongoDB + DBRef
在一个Spring项目中,我正在使用Spring Data MongoDB,并且有2个类:
public class ClassA
{
@Id
private String id;
private String description
@DBRef
private ClassB classBId;
// Getters and Setters
}
public class ClassB
{
@Id
private String id;
private String description
// Getters and Setters
}
正因为如此,我有两个集合,分别是classA和classB,并用几个实例填充它们。
classA实例的存储方式如下:
{“ _id”:{“ $ oid”:“ 5086b371004d7c4bfff0a142”},“ _class”:“ com.spring.custom.ClassA”,“ description”:“描述A”,“ classBId”:{“ $ ref”:“ classB“,” $ id“:{” $ oid“:” 50866d45004d84852b16a8b8“}}}
我的问题是,我该如何进行查询以返回所有引用ID为50866d45004d84852b16a8b8的classB实例的classA对象?
我已经尝试过了,但是没有成功:
ClassB cb = new ClassB(); cb.setId("50866d45004d84852b16a8b8");
Criteria criteria = Criteria.where("classBId").is(classBObject);
Query query = new Query(); query.addCriteria(criteria);
找到了一种做我所需要的方式...
ObjectId oid = new ObjectId(id);
Criteria.where(classBid+".$id").is(oid);
不幸的是,这不是我期望的那样,但这仍然是一个解决方案...
我什至尝试将Spring Data MongoDB API更新为1.0.4 RELEASE而不是1.0.2 RELEASE,以期能够得到如下结果:
ClassB cb = new ClassB();
cb.setId("50866d45004d84852b16a8b8");
Criteria criteria = Criteria.where("classBId").is(classBObject);
Query query = new Query();
query.addCriteria(criteria);
但我一直不断收到以下错误:
java.lang.RuntimeException:json无法序列化类型:class ClassB ...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.