私が達成したいことは些細なことのように思えます。それにもかかわらず、自分でそれを理解するのはかなりの頭痛の種です。
JPAを介してデータベースバックエンドと通信するClojureで記述されたサービス実装があります。私はこのようなことをしなければなりません:
(defn foo []
(let [entitymanager ... query ...]
(do
(.. entitymanager (getTransaction) (begin))
(read-from-db query) ; <-- shall be returned
(.. entitymanager (getTransaction) (commit))
)
)
)
read-from-dbが値を返します。java.jdbcパッケージを調べたところ、有望に見えますが、JPA に固執したい/固執しなければなりません。さらに、私の問題は JPA per sé に固有のものではないようです。
Clojure でこのような戻り値のラッピングを行う慣用的な方法はありますか? 私はClojureの初心者であることを覚えておいてください。
敬具!