Quindi noto che MongoTemplate di Spring Data ha molti diversi tipi di operazioni di "salva oggetto", come salvataggio, upsert, insert e updateFirst.Perché il MongoRepository di Spring Data è così limitato?
L'interfaccia MongoRepository di Spring Data, d'altra parte, ha un metodo di persistenza: "salva". Ora, ovviamente, se voglio creare funzionalità di aggiornamento/aggiornamento/upsert, posso implementarle abbastanza facilmente. Fai un salto prima di chiamare "salva" e controlla se l'entità esiste o meno. Ma sembra strano che MongoTemplate abbia una tale diversità di opzioni (non riesco nemmeno a capire quale sia la differenza tra un salvataggio e un upsert), ma i repository di Spring Data sono così limitati.
Pensate che sia inutile/pigro usare Spring Data MongoRepositories senza personalizzarne i metodi se si sta usando la semantica di creazione/aggiornamento, o è la differenza tra un get + null check + repository.save vs a mongoTemplate.insert troppo irrilevante per preoccuparsi?
Sì, l'ho già fatto. Ma questo è un sacco di codice boilerplate da scrivere per ottenere un aggiornamento e un metodo di creazione quando il punto principale dei repository di Spring Data è quello di ridurre il codice boilerplate IMO. – CorayThan