簡體   English   中英

春季+ MongoDB + DBRef

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM