MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Como personalizar o MongoRepository sem substituir os métodos @Query anotados na interface?


Você tem que dividir sua interface de repositório em duas.

O primeiro - "Custom" contendo métodos que você implementa manualmente seria:
public interface TopRepositoryCustom {
    long getPublishedTopoCount();
}

Segundo para métodos gerados:
public interface TopRepository extends MongoRepository<Topo, String>, TopRepositoryCustom {
    @Query("{'name':?0}")
    Topo findByName(String name);  
}

Então você só precisa implementar o primeiro repositório e lembrar de seguir a convenção de nomenclatura adequada. Veja mais em:spring-data mongodb custom deployment PropertyReferenceException e Spring Data MongoDB Referência de implementações personalizadas