在一个Spring项目中,我使用了Spring,并有两个类:
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”:“5086b371004d7c4c4bfff0a142”},"_class“:"com.spring.custom.ClassA",”描述“:”描述A“,"classBId”:{ "$ref“:"classB”,"$id“:{ "$oid”:“50866d45004d84852b16a8b8”}}
我的问题是,如何使用id 50866d45004d84852b16a8b8返回引用classB实例的所有classB对象?
我试过这样做,但没有成功:
ClassB cb = new ClassB(); cb.setId("50866d45004d84852b16a8b8");
Criteria criteria = Criteria.where("classBId").is(classBObject);
Query query = new Query(); query.addCriteria(criteria);发布于 2012-10-24 15:49:08
找到了做我需要的事的方法..。
ObjectId oid = new ObjectId(id);
Criteria.where(classBid+".$id").is(oid);不幸的是,这不是我所期望的那样,但这是一个解决办法.
我甚至尝试将我的Spring API更新为1.0.4版本,而不是1.0.2版本,希望我能够得到类似的结果:
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不能序列化类型:ClassB.类
https://stackoverflow.com/questions/13035978
复制相似问题