- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
使用 Datastax Java Driver for Cassandra 中的 QueryBuilder 构建插入语句的正确方法是什么
我正在使用 Cassandra 2.x 和 Java Driver 2.0.0-rc1
我知道我可以使用准备好的语句来实现相同的目的,但我期待使用 QueryBuilder
@Test
public void testTableInsert() {
Insert insert = QueryBuilder
.insertInto(KEYSPACE_NAME, TABLE_NAME)
.value("username", "jdoe")
.value("first", "John")
.value("last", "Doe");
System.out.println(insert.toString());
ResultSet result = session.execute(insert.toString());
System.out.println(result);
}
我可以确认查询字符串是有效的,因为它在 cqlsh 上手动尝试时成功
INSERT INTO test.user(username,first,last) VALUES ('jdoe','John','Doe');
驱动报错是
com.datastax.driver.core.exceptions.InvalidQueryException: unconfigured columnfamily user
at com.datastax.driver.core.exceptions.InvalidQueryException.copy(InvalidQueryException.java:35)
at com.datastax.driver.core.ResultSetFuture.extractCauseFromExecutionException(ResultSetFuture.java:271)
at com.datastax.driver.core.ResultSetFuture.getUninterruptibly(ResultSetFuture.java:187)
at com.datastax.driver.core.Session.execute(Session.java:126)
at com.datastax.driver.core.Session.execute(Session.java:77)
at SimpleClientTest.testTableInsert(SimpleClientTest.java:61)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:45)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:42)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:30)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:263)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:68)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:47)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:231)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:60)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:229)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:50)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:222)
at org.junit.runners.ParentRunner.run(ParentRunner.java:300)
at org.junit.runner.JUnitCore.run(JUnitCore.java:157)
at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:77)
at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:195)
at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:63)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:120)
Caused by: com.datastax.driver.core.exceptions.InvalidQueryException: unconfigured columnfamily user
at com.datastax.driver.core.Responses$Error.asException(Responses.java:96)
at com.datastax.driver.core.ResultSetFuture$ResponseCallback.onSet(ResultSetFuture.java:122)
at com.datastax.driver.core.RequestHandler.setFinalResult(RequestHandler.java:224)
at com.datastax.driver.core.RequestHandler.onSet(RequestHandler.java:359)
at com.datastax.driver.core.Connection$Dispatcher.messageReceived(Connection.java:510)
at org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:70)
at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564)
at org.jboss.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:791)
at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:296)
at org.jboss.netty.handler.codec.oneone.OneToOneDecoder.handleUpstream(OneToOneDecoder.java:70)
at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564)
at org.jboss.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:791)
at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:296)
at org.jboss.netty.handler.codec.frame.FrameDecoder.unfoldAndFireMessageReceived(FrameDecoder.java:462)
at org.jboss.netty.handler.codec.frame.FrameDecoder.callDecode(FrameDecoder.java:443)
at org.jboss.netty.handler.codec.frame.FrameDecoder.messageReceived(FrameDecoder.java:303)
at org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:70)
at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564)
at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:559)
at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:268)
at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:255)
at org.jboss.netty.channel.socket.nio.NioWorker.read(NioWorker.java:88)
at org.jboss.netty.channel.socket.nio.AbstractNioWorker.process(AbstractNioWorker.java:109)
at org.jboss.netty.channel.socket.nio.AbstractNioSelector.run(AbstractNioSelector.java:312)
at org.jboss.netty.channel.socket.nio.AbstractNioWorker.run(AbstractNioWorker.java:90)
at org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:178)
at org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:108)
at org.jboss.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:42)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
at java.lang.Thread.run(Thread.java:695)
我在 here 的官方文档页面上找不到任何示例
最佳答案
代码没有问题。该错误是由于被查询的 CF 是在同一 session 中创建的。这种情况下,需要在集群中新建一个Session,让Session获取CF的TableMetaData。我只是假设由于建立了连接, session 将在 Insert 语句之前更新其 TableMetaData。不幸的是,情况并非如此。
关于java - Datastax QueryBuilder 插入语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21667425/
DBAL 查询生成器: http://www.doctrine-project.org/api/dbal/2.3/class-Doctrine.DBAL.Query.QueryBuilder.html
我的查询生成器可以正常工作,但是当我拉出控制台时,出现的错误是 QueryBuilder is not defined 我是否缺少对 JS 库的引用,或者我是否以错误的顺序加载 JS?这是我的 Jav
我正在使用高级 java rest 客户端 (6.5),我需要根据某个日期范围过滤数据 - 假设,我在同一个索引和 2 个文档中有这 4 个文档(添加了 postman 图像)'没有 publish_
我有一个新鲜的QueryBuilder ,我想要orderByRaw使用SelectArg . //String column is coming from unknown source Select
我有一个查询要从具有日期的实体获取用户名: return $this->createQueryBuilder('t') ->select('t.username') ->where('
我有一个用例,我有一个 boolQueryBuilder,它在不同类型的查询中很常见。 现在对于不同的查询,我需要向 boolQueryBuilder 添加不同的 must()。 基本上,假设我有一个
我想知道我的表 TABLE 中的行数以及属性 name="joe" 这里是我到目前为止使用的代码,但我检索了对象(这只是不必要的,所以没有优化) $repository = $this->getDoc
有没有一种方法可以使查询生成器类似于 Mysql 中的下一个查询生成器: "SELECT a.* FROM fsa_areas ORDER BY (SELECT count(*) FROM fsa_a
我有以下查询: $qb ->select('z') ->where($qb->expr()->orX( $qb->expr()->like('z.city', ':czReq
我有如下代码,我在 bool 查询中执行多个 must。在这里,我在“地址”字段中传递了必须的术语查询。现在 ip 地址将作为其他 api 的列表传给我,我必须将列表中的所有 ip 作为必填项查询传递
您好,我正在尝试使用 QueryBuilder 和 Query\Expr 构建查询。我的问题是构建子条件,以便获得所有这些条件的模型列表? Status 为 true 且不在 model name 列
我正在使用 JQuery QueryBuilder在我的 HTML 页面中。我关注了installation guide .我的 HTML head 包括以下内容
我试图将一个变量放入查询中的字段名称中,所以我有一个架构: id amazon - tesco - asda - happyshopper - 1 £5 - NULL - NULL
是否可以在 createQueryBuilder 中使用可选参数? 例如,我有这样的代码: let users = await this.conn .getRepository(UserEntit
我有一个简单的查询: $this->qb->select('l.value') ->addSelect('count(l) AS cnt') ->addSelect('
我正在使用 Symfony2 和 Doctrine2 开发应用程序。我还使用了 Doctrine 的 QueryBuilder。我有这个查询: public function getInterpDes
如何在查询生成器中使用子字符串: 我试过这个: $qb->andWhere($qb->expr()->substring('t0.country',1,2) != 'FR'); ... 但我有这个异常
在我的实体上,我有一个用户数组集合 /** * @ORM\ManyToMany(targetEntity="\UserBundle\Entity\User", mappedBy="acr_group
我正在尝试对 id 字段进行计数请求。 我的 Controller 中有以下代码: $qb = $em->createQueryBuilder(); $qb->select('count(c.id)'
我在使用javax.persistence.criteria.CriteriaBuilder创建查询时遇到问题。我正在使用EclipseLink 2.1和Oracle 10g数据库。构建具有多个限制的
我是一名优秀的程序员,十分优秀!