客户端/准备好的宏是否仅适用于.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 - 我如何使用多语句和预准备语句?我看到在创建集群时有一个强制准备查询的选项,这有点暴力但可能是可以接受的。
答案 0 :(得分:0)
这是一个已经使用Cassaforte的最新版本(1.1.0)修复的错误:
https://groups.google.com/forum/#!topic/clojure-cassandra/JFUtS4k70w8