2016-06-15 22 views
0
SELECT 
    feature_name, 
    (3959 * acos(cos(radians(37)) * cos(radians(lat)) 
     * cos(radians(long) - radians(-122)) + sin(radians(37)) 
     * sin(radians(lat)))) AS distance 
FROM 
    geo_features 
HAVING 
    distance < 25 
ORDER BY 
    distance 
+0

多分 'query query = create.query(" SELECT ... ")'そうですか? JOOQのベンダーサイトに役立つ情報が必要ですか?それとも、これを何か他のものと混ぜるのですか? – Dilettant

答えて

1

は、この静的インポートと仮定すると:

import static org.jooq.impl.DSL.*; 

はここにあなたのクエリを作成する方法は次のとおりです。すべてのSQL関数は、変換

  • GeoFeatures f = Tables.GEO_FEATURES; 
    Field<Double> distance = 
        val(3959.0).mul(acos(cos(rad(37.0)))).mul(cos(rad(f.LAT))) 
           .mul(rad(f.LONG).sub(rad(-122.0)).add(sin(rad(37.0))) 
           .mul(sin(rad(f.LAT))).as("distance") 
    
    DSL.using(configuration) 
        .select(
         f.FEATURE_NAME, 
         distance 
        ) 
        .from(f) 
        .having(distance.lt(25.0)) 
        .orderBy(distance) 
    

    これらは心に留めておくべき重要なものですの機能へorg.jooq.impl.DSL

  • の算術演算は、「インフィックス」表記を介してアクセス可能であるが、オペレータは、+ = add() or plus()、など* = mul()、メソッド名としてjOOQでラップされなければならない演算の左側にある- = sub() or minus()
  • 番号を書き込まれなければなりませんAPIは明示的にval()(バインド変数用)またはinline()(インライン化用)を使用します。
関連する問題