2013-04-07 14 views
10

Ich bin mit Spring Data MongoDB Kriterien API orOperator Problem konfrontiert.Spring Data MongoDB - Kriterien API OrOperator funktioniert nicht richtig

Hier Abfrageergebnis für unregelmäßige Verben: (Terminal-Ausgang)

> db.verb.find({'v2':'wrote'}); 
{ "_id" : ObjectId("5161a8adba8c6390849da453"), "v1" : "write", "v2" : "wrote", "v3" : "written" } 

Und ich abfragen Verben durch ihre v1 oder v2 Werte mit Spring Data MongoDB Criteria API:

Criteria criteriaV1 = Criteria.where("v1").is(verb); 
Criteria criteriaV2 = Criteria.where("v2").is(verb); 
Query query = new Query(criteriaV1.orOperator(criteriaV2)); 
List<Verb> verbList = mongoTemplate.find(query, Verb.class) 

Aber leider verbList hat keine Artikel.

Antwort

29

Soweit ich um erinnern orOperator zu verwenden, die Sie tun sollten:

Query query = new Query(new Criteria().orOperator(criteriaV1,criteriaV2));
+0

Dank für Ihre Hilfe; Nachdem ich die Anwendungsprotokolle untersucht habe, sehe ich, dass der erste Parameter wie ein UND-Kriterium verwendet wird. Also verwendet die Lösung neue Instanz von Kriterien, wie Sie es geschrieben haben, oder fügt eine immer wahre Bedingung hinzu. – talha06

+0

Wie können wir multiple orOperator verwenden, um nach mehreren Kriterien zu suchen? –

Verwandte Themen