如何保存mongodb中的一对多关系

cxy1415 2014-11-10 10:33:46
现在遇到这么一个问题
有以下2个实体

@Document
public class ProductInfo {
@Id
private ObjectId id ;

private String productName;

@DBRef
private List<ReleaseInfo> releaseinfo ;

}

@Document
public class ReleaseInfo{
@Id
private ObjectId id ;

private String rname;

}

逻辑为先 生成projectId 再生成Release
以下是我的实现代码

@RequestMapping(value = "/add")
public @ResponseBody Result add(ReleaseInfo release,HttpServletRequest req) {
String productId =req.getParameter("productId");
save(release);
List<ReleaseInfo> rlst ;
Query query =new Query(Criteria.where("id").is(productId));
ProductInfo product =mongoTemplate.findOne(query,ProductInfo.class);
if(product.getReleaseinfo()==null){
rlst=new ArrayList<ReleaseInfo>();
}else{
rlst=product.getReleaseinfo();
}
rlst.add(release);
Update update =new Update();
//DBRef dbref =new DBRef();
update.set("releaseinfo", rlst);
//query.
mongoTemplate.findAndModify(query, update, ProductInfo.class);
return Result.ok();
}

但是奇怪的是 进入MongoDB中的时候,他的展示形式是
release:[{ObjectId:....},{bjectId:....}]

但是我想要的结果应该是

DBRef{
“releaseInfo”,ObjectId:{....}
}

求大神解答


...全文
134 回复 打赏 收藏 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

51,407

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧