2011-10-25 8 views
0

Haversine式を使用しようとしています。理想的には、JPAとMySQLでHibernateプロバイダを使用したいと考えています。これは私が使用しているMySQLで動作するように見える次のクエリです。Hibernate MySQL Haversine

SELECT campusid, (3959 * acos(cos(radians(37)) * cos(radians(latitude)) * cos(radians(longitude) - radians(-122)) + sin(radians(37)) * sin(radians(latitude)))) AS distance FROM mydb.campus HAVING distance < 25 ORDER BY distance LIMIT 0 , 20;

私は休止状態を使用することができますし、これを行うためのクリーンな方法をご希望の方法を確認しようとしています。私はCriteria APIを見ましたが、これを実行する方法を見つけることはできません。

答えて

1

このクエリは、Hibernateでは可能ではなく、確かにきれいな方法ではありません。ただし、ネイティブSQLクエリを実行することはできます。

session.createSQLQuery("your sql here"); 

これはあなたをMySQLに結び付けますが、うまくいくはずです。

+0

ありがとうございます!私はそれを試みます。 –