9

そこで、Spring Data の MongoTemplate には、save、upsert、insert、updateFirst など、さまざまな種類の「オブジェクトの保存」操作があることに気付きました。

一方、Spring Data の MongoRepository インターフェースには、「save」という永続化メソッドが 1 つあります。さて、明らかに、作成/更新/アップサート機能が必要な場合は、それらを非常に簡単に実装できます。「保存」を呼び出す前に取得を実行し、エンティティが存在するかどうかを確認してください。しかし、MongoTemplate に非常に多様なオプションがあるのは奇妙に思えますが (保存とアップサートの違いが何であるかさえ理解できません)、Spring Data のリポジトリは非常に限られています。

create / updateセマンティクスを使用する場合、メソッドをカスタマイズせずにSpring Data MongoRepositoriesを使用するのは無駄/怠惰だと思いますか、それともget + nullチェック+ repository.saveとmongoTemplate.insertの違いですか?気にしなくていいの?

4

3 に答える 3

0

Spring Data はリポジトリ パターンに従います。RepositoryDAO レイヤーの抽象化であり、ドメイン エンティティの一般的な格納と取得に使用されます。リポジトリ層の一番下にDAO層部分があり、そこでMongoTemplate使われています。

論理Repository保存方法も同様です。ドメインの観点からは、ドメイン エンティティがどのように永続化されるかについてまったく気にする必要はありません。save メソッドを呼び出すだけで、の使用法は実装にMongoTemplate依存しMongoRepositoryます。

于 2013-08-06T21:53:01.127 に答える