もともと、空のテストとして結果セットで(seq)を呼び出すのに問題があるのはなぜかと尋ねるつもりでしたが、少し調べてみると、jdbcカーソルがどこにも移動していないことが原因と思われます。上品でダンディ。名前がわからない場合、結果セットでnext()を呼び出す方法はありますか?clojureのシンボルにバインドすることはできますが、そこからメソッドを呼び出す方法がわかりません。
編集:明確でない場合は、clojure(next)ではなくjava resultSetメソッドnext()を参照しています
edit#2ここにコードスニペットがあります:
(defn user-exists? [email]
(with-connection db
(with-query-results res ["SELECT guid from users WHERE email=?" email]
(.next res)
(seq res))))
(.nextのヘルプに感謝します、ところで...まだ多くのJava相互運用機能を実行していません)
それでも、クエリが何も返さなかった場合、(seq)を使用するとNullPointerExceptionがスローされます。これを行うためのよりクリーンで慣用的な方法があるかどうか疑問に思っていますか?