2016-04-07 5 views
0

Ich verwende die folgende Methode zur Abfrage mit Spring Data JPA.Kann ich AND- und OR-Bedingungen kombinieren

findByUpdatedGreaterThanAndFromEmailOrToEmailInOrderByUpdatedAsc(final long updated, final String email, final String to); 

Die Abfrage wird aufgrund der ODER-Bedingung immer bestanden.

Meine Absicht war findBy (UpdatedGreaterThan) und (FromEmailOrToEmailIn) OrderByUpdatedAsc

Gibt es trotzdem das gleiche in Spring Data JPA zu tun.

Antwort

1

Sie können die Annotation @Query verwenden, um manuell einen Mongodb query zu erstellen, um die Logik Ihrer Suchkriterien ordnungsgemäß zu erzwingen.

So etwas (Ich lasse die Bestellung Sie Teil):

@Query(
    "{ $and : [ { 'updated' : { $gt: '?0'} }," + 
       "{ $or : [ { 'email' : '?1' }, { 'to' : '?2' } ] }") 
findByUpdatedGreaterThanAndFromEmailOrToEmailInOrderByUpdatedAsc(final long updated, final String email, final String to); 

wo 0, 1, 2 sind Platzhalter für Ihre findBy Methodenargumente??.

+0

Hat das Gleiche getan. Hoffte, es gäbe eine Syntax für den Methodennamen, um das Gleiche zu tun. @choda Danke. – unnik

Verwandte Themen