MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Comment personnaliser MongoRepository sans remplacer les méthodes @Query annotées dans l'interface ?

Vous devez diviser votre interface de référentiel en deux.

La première - "Personnalisée" contenant les méthodes que vous implémentez manuellement serait :

public interface TopRepositoryCustom {
    long getPublishedTopoCount();
}

Deuxième pour les méthodes générées :

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

Ensuite, il vous suffit d'implémenter le premier référentiel et de vous rappeler de suivre la convention de dénomination appropriée. Voir plus sur :spring-data mongodb custom implementation PropertyReferenceException et Spring Data MongoDB Référence des mises en œuvre personnalisées