亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Spring @transactional 是否與 MongoDB 一起使用?

Spring @transactional 是否與 MongoDB 一起使用?

元芳怎么了 2022-07-27 20:52:50
我正在使用 Spring Boot 和 MongoDB 開發一個 Web 應用程序。我想讓服務與@transactional spring 注釋一起工作,但我不知道這是否真的有效。(我之前沒有使用過 mongoDB)。我添加了注釋,似乎一切運行良好(應用程序運行,我可以執行所有操作 CRUD),但是,我不知道 Spring 是否忽略了注釋并且它像往常一樣工作,或者真的在考慮事務性.在其他帖子中,我看到我應該在配置類中添加一個新 bean,以啟用 Spring 和 MongoDB 之間的事務性。真的有必要嗎?,我只使用單個 Mongo 文檔的事務。
查看完整描述

2 回答

?
Qyouu

TA貢獻1786條經驗 獲得超11個贊

@Transactional 僅適用于 spring-data-mongodb 2.1.0 及更高版本: https ://docs.spring.io/spring-data/mongodb/docs/2.1.0.RELEASE/api/


事實上,你必須添加 bean:


@Bean

MongoTransactionManager transactionManager(MongoDatabaseFactory dbFactory) {

    return new MongoTransactionManager(dbFactory);

}

我不知道 Spring 是否忽略了注釋并且它像往常一樣工作,或者真的在考慮事務性


為此,您可以在 2 次數據庫更新之間引發異常并檢查第一次更新是否已回滾。


但是,如果您在單個 Mongo 文檔中使用事務,則不需要 @Transactional 注釋:


在 MongoDB 中,寫入操作在單個文檔級別上是原子操作,即使該操作修改了單個文檔中的多個嵌入文檔。 MongoDb 文檔 - 事務


查看完整回答
反對 回復 2022-07-27
?
阿波羅的戰車

TA貢獻1862條經驗 獲得超6個贊

對于反應式 mongoDB 和 Spring boot 集成,我在此處提供的答案可能對人們有用



查看完整回答
反對 回復 2022-07-27
  • 2 回答
  • 0 關注
  • 473 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號