Cassaforte客户端/用multi.cql编写

时间:2013-07-21 13:10:58

标签: clojure

客户端/准备好的宏是否仅适用于.cql命名空间而不适用于.multi.cql?

我使用multi.cql来控制我的集群和会话构建,并且执行普通查询很好。但是,如果我按照以下方式尝试:

(client/prepared
  (insert session :some_table {:id "some-id"
                               :value "some-value"})))

我收到错误:

java.lang.ClassCastException: clojure.lang.Var$Unbound cannot be cast to com.datastax.driver.core.Session
at clojurewerkz.cassaforte.client$prepare.invoke(client.clj:174) ~[classes/:na]
at clojurewerkz.cassaforte.client$execute.doInvoke(client.clj:278) ~[classes/:na]
at clojure.lang.RestFn.invoke(RestFn.java:457) ~[clojure-1.5.1.jar:na]
at clojurewerkz.cassaforte.multi.cql$execute_.invoke(cql.clj:17) ~[classes/:na]
at clojurewerkz.cassaforte.multi.cql$insert.doInvoke(cql.clj:132) ~[classes/:na]
at clojure.lang.RestFn.invoke(RestFn.java:439) ~[clojure-1.5.1.jar:na]

我的会话构造正常,我可以用它来执行普通查询。 我对Clojure比较陌生,所以我可能会做一些愚蠢的事情。

如果client / prepared不适用于.multi.cql - 我如何使用多语句和预准备语句?我看到在创建集群时有一个强制准备查询的选项,这有点暴力但可能是可以接受的。

1 个答案:

答案 0 :(得分:0)

这是一个已经使用Cassaforte的最新版本(1.1.0)修复的错误:

https://groups.google.com/forum/#!topic/clojure-cassandra/JFUtS4k70w8