2016-07-06 11 views
0

Ist es möglich, benannte Parameter für eine @Query-Methode in einem mongodb-Repository zu verwenden, genau wie wir es mit einem jpa-Repository tun können (http://docs.spring.io/spring-data/jpa/docs/1.4.3.RELEASE/reference/html/jpa.repositories.html Abschnitt 2.3.5)?@Query benannte Parameter für MongoDb Spring-Repository

Als Beispiel würde Ich mag den folgenden Code verwenden:

@Query("{'store' : :store, 'app' : :app }") 
List<T> findByStoreAndApp(@Param("store") String store, @Param("app") String app); 

statt:

@Query("{'store' : ?0, 'app' : ?1 }") 
List<T> findByStoreAndApp(String store, String app); 

Antwort

0

Ich habe Angst, dass die Feder Boot seines diese Funktion im Quellcode bereitstellt .

Sie können eine Schnittstelle erstellen und erweitert MongoRepository Es bietet eine einfache Methode, und Sie brauchen das implementieren es nicht. Genauso wie das JpaRepository.

@NoRepositoryBean 
 
public interface MongoRepository<T, ID extends Serializable> extends PagingAndSortingRepository<T, ID> { 
 
    <S extends T> List<S> save(Iterable<S> var1); 
 

 
    List<T> findAll(); 
 

 
    List<T> findAll(Sort var1); 
 

 
    <S extends T> S insert(S var1); 
 

 
    <S extends T> List<S> insert(Iterable<S> var1); 
 
}

Wenn Sie jedoch einige spezielle Abfrage tun müssen. Sie könnten nur die MongoTemplate @Autowired und verwenden Sie eine eigene Methode. Und für redis bietet springboot das Repository nicht wie MongoRepository. Sie könnten die Vorlage nur wie StringRedisTemplate für den Abfragevorgang verwenden. Könnte Letzteres sein, Springboot würde die gleiche Funktion wie JpaRepository für NoSql hinzufügen. Aber jetzt bietet es diese Funktion nicht.