Spring Data optionalen parameter in der query-Methode
Ich schreiben möchte einige Methoden Abfragen in repository-Ebene. Diese Methode muss ignorieren null-Parameter. Zum Beispiel:
List<Foo> findByBarAndGoo(Bar barParam, @optional Goo gooParam);
Diese Methode muss return Foo durch diesen Zustand:
bar == barParam && goo == gooParam;
wenn gooParam nicht null ist. wenn gooParam null war dann die Bedingung zu ändern:
bar == barParam;
Gibt es eine Lösung? Kann mir jemand helfen?
- Liste<Foo - > findByBarAndGoo(Bar, bar, @optional Goo Goo){if(Takt==null || goo==null){throw new IllegalArgumentException("Parameter kann nicht null sein");} }
- Ich meine, in den optional parameter wenn dieser Parameter null war dann die query-Methode, IGNORIEREN Sie diese param. Danke.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Zu spät, Sie zu beantworten. Nicht sicher über die Beziehung zwischen Bar und Goo. Überprüfen Sie, ob Beispiel kann, hilft Sie.
Es funktionierte für mich. Ich habe eine ähnliche situation, Person Benutzer haben eine Menge der Attribute, und es ist findAll Methode, die Benutzer suchen basierend auf Attribute(sind optional).
Beispiel,
Ich glaube nicht, dass Sie werde in der Lage sein zu tun, die mit den Namen der Methode, Ansatz zur query-definition. Aus der Dokumentation (Referenz):
Ich glaube, Sie haben diese situation hier, so die Antwort weiter unten verwendet den @Query annotation Vorgehensweise, die fast so bequem wie der name der Methode Ansatz (Referenz).
Ergänzend zu der Antwort von @chaserb, ich persönlich möchte hinzufügen, die parameter als Java8 Optional Art zu machen, ausdrücklich in der Signatur der Methode, die Semantik, die ist ein optionales filter.
Könnten Sie code, der diese selbst in nur ein paar Zeilen:
Sonst, ich weiß nicht, ob Spring-Data unterstützt Sie dabei, diese aus der box.