sql >> Database >  >> NoSQL >> MongoDB

Wat is het verschil tussen MongoTemplate en MongoRepository van Spring Data?

'Handig' en 'krachtig in gebruik' zijn in zekere mate tegenstrijdige doelen. Opslagplaatsen zijn veel handiger dan sjablonen, maar de laatste geven u natuurlijk meer gedetailleerde controle over wat u moet uitvoeren.

Aangezien het repository-programmeermodel beschikbaar is voor meerdere Spring Data-modules, vindt u meer diepgaande documentatie hierover in het algemene gedeelte van de Spring Data MongoDB-referentiedocumenten.

TL;DR

Over het algemeen raden we de volgende aanpak aan:

  1. Begin met de samenvatting van de repository en declareer eenvoudige zoekopdrachten met behulp van het mechanisme voor het afleiden van zoekopdrachten of handmatig gedefinieerde zoekopdrachten.
  2. Voor complexere zoekopdrachten voegt u handmatig geïmplementeerde methoden toe aan de repository (zoals hier beschreven). Gebruik voor de implementatie MongoTemplate .

Details

Voor jouw voorbeeld zou dit er ongeveer zo uitzien:

  1. Definieer een interface voor uw aangepaste code:

    interface CustomUserRepository {
    
      List<User> yourCustomMethod();
    }
    
  2. Voeg een implementatie toe voor deze klasse en volg de naamgevingsconventie om ervoor te zorgen dat we de klasse kunnen vinden.

    class UserRepositoryImpl implements CustomUserRepository {
    
      private final MongoOperations operations;
    
      @Autowired
      public UserRepositoryImpl(MongoOperations operations) {
    
        Assert.notNull(operations, "MongoOperations must not be null!");
        this.operations = operations;
      }
    
      public List<User> yourCustomMethod() {
        // custom implementation here
      }
    }
    
  3. Laat uw basisrepository-interface nu de aangepaste uitbreiden en de infrastructuur zal automatisch uw aangepaste implementatie gebruiken:

    interface UserRepository extends CrudRepository<User, Long>, CustomUserRepository {
    
    }
    

Op deze manier krijg je in wezen de keuze:alles wat eenvoudig te declareren is, gaat in UserRepository , alles wat beter handmatig kan worden geïmplementeerd, gaat naar CustomUserRepository . De aanpassingsopties worden hier gedocumenteerd.



  1. Installeer MongoDB op Windows

  2. MongoDB en sluit zich aan

  3. Future of Hadoop - Salarissen en baanvoorspellingen in big data-analyse

  4. MongoDB:FOUT:onderliggende proces mislukt, afgesloten met foutnummer 14