2017-11-16 1 views
1

Ich habe eine benutzerdefinierte Abfrage-Methode in der Mongo Repository-Schnittstelle hinzugefügt:Können wir AND und OR in einer einzigen FindyBy-Methode von Spring Data verwenden, um auf MonogDB zuzugreifen?

// Vor- und Nachname

Oben:

Employee findByFirstNameAndLastName(Stirng firstName, String lastName); 

Welche Mitarbeiter erfüllen die folgenden Kriterien zurückkehrt Methode funktioniert wirklich gut, alles dank Spring Data.

Aber, ich möchte etwas wie folgt aus:

Employee findByFirstNameAndLastNameOrDesignation(Stirng firstName, String lastName, String designation); 

Above Methode sollte Mitarbeiter Details nach folgenden Kriterien zurück:

// Vor- und (Nachname oder Bezeichnung)

Ist es möglich, AND und OR in einer einzigen Methode zu verwenden?

+0

Nun, in diesem Fall benötigen Sie ein CustomRepository. –

Antwort

1

Obwohl SpringData mächtig ist, ist es nicht so mächtig. Es gibt keine Möglichkeit, dass SpringData wissen, was Sie wollen:

1) A und (B oder C)

oder

2) (A und B) oder C etc ...

Sie können @namedQuery oder @Query verwenden.

Eine andere Möglichkeit ist die Verwendung von Bool Algebra. Zum Beispiel

A und (B oder C) == (A und B) oder (A und C)

so können Sie Verfahren mit folgenden Namen haben: findByAandB_AandC.

Verwandte Themen