2016-07-21 50 views
0
SELECT id,zipcode,state_id,district_city_id,city_id,country_id,longitude,latitude,region,post_office,(6371 * acos(cos(radians(?)) * cos(radians(Latitude)) * cos(radians(Longitude) - radians(?)) + sin(radians(?)) * sin(radians(Latitude)))) AS distance FROM zipcodeinfo group by city_id HAVING distance < ? order by distance asc 

Hier möchte ich eine Distanz eingereicht, die von aktuellen Eingabe- und Tabellendaten abgeleitet ist. Aber das heißt, dass Abstand nicht existiert, auch wenn ich eine transiente Variable als Abstand erstellt habe.abgeleitete Spalte existiert nicht in Ruhezustand Einheit

+0

Sie wissen, dass "cos", "Radiant", "sin", etc sind nicht gültige Schlüsselwörter/Funktionen in JPQL? JPQL! = SQL. Außerdem hängt JPQL von Klassen/Feldern ab und Sie haben die Entitätsklasse nicht veröffentlicht –

Antwort

0

Sie verwenden Entfernung in Ihrer Abfrage in der having-Klausel

HAVING distance < ? 

und in der Reihenfolge Klausel

order by distance 

aber Abstand ist vergänglich, wie Sie sagen, ist keine Spalte in der Datenbank, daher Sie können es nicht auf haben und Reihenfolge Klausel verwenden, weil eine Spalte der Tabelle erwartet wird