使用Datastax Java驱动程序的com.datastax.driver.core.exceptions.InvalidQueryException

时间:2013-04-21 21:43:37

标签: java cassandra command-line-interface cql datastax-java-driver

我从CLI创建了这样的列族 -

create column family profile
    with key_validation_class = 'UTF8Type'
    and comparator = 'UTF8Type'
    and default_validation_class = 'UTF8Type'
    and column_metadata = [
      {column_name : account, validation_class : 'UTF8Type'}
      {column_name : advertising, validation_class : 'UTF8Type'}
      {column_name : behavior, validation_class : 'UTF8Type'}
      {column_name : info, validation_class : 'UTF8Type'}
      ];

现在我尝试使用Datastax Java驱动程序插入此列族 -

public void upsertAttributes(final String userId, final Map<String, String> attributes) {

String batchInsert = "INSERT INTO PROFILE(id, account, advertising, behavior, info) VALUES ( '12345', 'hello11', 'bye2234', 'bye1', 'bye2') "; 

        CassandraDatastaxConnection.getInstance().getSession().execute(batchInsert);

    }

我总是得到这个例外 -

  

com.datastax.driver.core.exceptions.InvalidQueryException:   未配置的columnfamily配置文件

通过这种方式,我正在尝试使用Datastax java驱动程序为Cassandra创建连接/会话初始化 -

private CassandraDatastaxConnection() {

    try{
    cluster = Cluster.builder().addContactPoint("localhost").build();
    session = cluster.connect("my_keyspace");           
    } catch (NoHostAvailableException e) {

            throw new RuntimeException(e);
    }
}

我正在运行Cassandra 1.2.3。我可以使用上面的代码连接到Cassandra。我面临的唯一问题是插入时。

我想知道的是我是否可以使用Datastax Java驱动程序插入Column Family(我是从CLI模式创建的)?一旦我尝试插入我在CLI模式下创建的Column Family,我总是得到上述异常。

但是如果我尝试插入我在CQLsh mode中创建的另一个表,我可以插入到该表中。

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:3)

我的猜测:您的CLI列系列位于不同的键空间中。