在我看来,我想要实现的目标是微不足道的;尽管如此,我还是有些头疼自己想出来。
我有一个用Clojure编写的服务实现,它通过JPA与数据库后端通信。 我必须做这样的事情:
(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 persé。
在Clojure中有没有一种惯用的方法来包装返回值? 请记住我是Clojure新手。
亲切的问候!
答案 0 :(得分:3)
我不确定你理解你的问题。以下是我猜你的问题的答案:
(defn foo []
(let [entitymanager ... query ...]
(do
(.. entitymanager (getTransaction) (begin))
(let [db-reply (read-from-db query)] ; <-- shall be returned
(.. entitymanager (getTransaction) (commit))
db-reply)
)
)
)
正确?