所以我注意到 Spring Data 的 MongoTemplate 有很多不同类型的“保存对象”操作,比如 save、upsert、insert 和 updateFirst。
另一方面,Spring Data 的 MongoRepository 接口有一个持久化方法:“save”。现在,显然,如果我想要创建/更新/更新插入功能,我可以很容易地实现它们。只需在调用“保存”之前执行一次获取并检查实体是否存在。但是 MongoTemplate 有如此多的选项似乎很奇怪(我什至无法弄清楚 save 和 upsert 之间的区别是什么),但是 Spring Data 的 repos 是如此有限。
如果您要使用创建/更新语义,您是否认为使用 Spring Data MongoRepositories 而不自定义其方法是浪费/懒惰,或者是 get + null check + repository.save 与 mongoTemplate.insert 之间的区别无关紧要?