1
我正在使用mongodb with spring mvc
作为REST API。我有一个控制器,为事件添加评论。该控制器使用我的事件服务的方法。下面是它们的实现。但是在我看来,如果我的mongodb连接没有transaction
。我有1 insert
和1 update
在我的控制器添加评论。如果事件更新抛出错误,请求提交插入。为什么它没有回滚?我该如何解决这个问题?MongoDB的弹簧数据
public Comments addComment(Comments comment) throws Exception{
comment.setCommentDate(SowUtil.getDateTimeDB());
comment.setCommenter(personService.findPersonById("531cc90e3c37b20bef47dfc7"));
mongoTemplate.insert(comment);
Events adv = findEventById(comment.getEventId());
adv.addComment(comment);
eventService.save(adv);
return comment;
}
老实说,我很惊讶。它应该保持在请求和响应周期之间的所有提交事务。您提供的第一个链接是一种解决方法,它会减慢我的系统。我认为必须有一个解决方案。我继续搜索 – Emilla
或者,也许你可以建议更好的数据表示为我的模型上述。正如你可以从我的问题中看到的,事件和评论之间存在OnetoMany关系。这就是为什么我认为我应该有2个文件。你建议我应该有1个文档,而不是 – Emilla
在更改数据模型之前,有一个特别的原因,你不想使用RDBMS?另外,你看看Spring的事务同步功能吗? – ChristopherZ