2017-11-06 4 views
0

Ich suche eine kurze (eine Methode lang) Lösung meines Problems. möchte ich Abfrage im Frühjahr Daten schreiben, die das gleiche tut wie:Wie findet man Entitäten nach Federdaten mit gleichen Werten verschiedener Felder?

select * from Users 
where city = @EnteredData data OR homeTown = @EnteredData 

Ich versuchte

List<User> findDistinctCity_findByHomeTown(String city); 

Ich habe keine Ideen, wie die Nutzer zu finden, deren Stadt oder Heimatstadt zu gegebener Wert ist gleich in einem Methode.

Antwort

1

Ich werde mit der folgenden Version gehen. Ich besser schreiben meine eigene Abfragen anstatt zu versuchen, die Spring Data zu nutzen erzeugte DSL ein

@Query("select u from User u where u.city = :city or u.homeTown = :city") public List<User> getUserInfo(@Param("city") String city); 
+0

Ich kenne diesen Weg. Aber ich denke, es ist dreckig. Ich kann JDBC für jpql verwenden. Aber ich habe Frühlingsdaten und ich möchte Abstraktionsniveau verwenden. –

+1

Dies ist die Art von Anwendungsfall @Query wurde für Spring Data eingeführt. Es verwendet Spring Data einfach gut. –

+0

Dies ist der einfachste Weg zu gehen und deshalb ist @Query Annotation für. U wird eine enorme Menge an Zeit warten, wenn Sie bei der Methode bleiben generiert Abfragen für alle Ihre Zwecke. – VimalKumar

0

U Methode Abfrage verwenden können, hinzufügen oder in Abfrage

List<User> findByCityOrHometowm(String name); 

JPQL schaffen wird Snippet als

where x.city= ?1 or x.hometown = ?2 
+0

Das sollte erfordern, dass Sie zwei Methodenargumente haben und den Namen zweimal übergeben –

Verwandte Themen