Requête de référentiel avec un paramètre List dans Spring Data MongoDB

J'ai le texte suivant POJO.

@Document(collection = "questions")
public class Question {

    @Id
    private String id;

    public List<String> getTags() {
        return tags;
    }

    public void setTags(List<String> tags) {
        this.tags = tags;
    }
}

Je suis en train de mettre en œuvre un MongoRepository requête qui trouve toutes les Questions qui contiennent une liste de balises. J'ai essayé ce qui suit:

@Repository
public interface QuestionRepository extends MongoRepository<Question, String> {
    List<Question> findByTags(List<String> tags);
}

mais cela ne fonctionne que lorsque le List de balises que je suis de passage à la méthode entièrement correspond à la liste de balises assignés à la question de Mongo. E. g. si j'ai une question à Mongo avec une liste de tags [ "t1", "t2", "t3" ] il n'est pas retourné par findByTags(List) quand je passe la [ "t1", "t2" ] à la méthode.

J'ai essayé ce qui suit:

@Repository
public interface QuestionRepository extends MongoRepository<Question, String> {
    @Query("{ tags: { $all: ?0 } }")
    List<Question> findByTags(List<String> tags);
}

mais alors mon war ne peut pas être déployée à mon conteneur de servlet. (J'obtiens l'erreur suivante dans ce cas:

The web application [backend] appears to have started a thread named [cluster-1-db:27017] but has failed to stop it. This is very likely to create a memory leak.

Pourriez-vous nous conseiller sur la façon de mettre en œuvre cette requête personnalisée?

source d'informationauteur Marchev