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