com.datastax.driver.core.exceptions.InvalidQueryEx

2019-08-13 03:05发布

问题:

I created my column family like this from the 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'}
      ];

Now I was trying to insert into this column family using the Datastax Java driver-

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);

    }

I am always getting this exception-

com.datastax.driver.core.exceptions.InvalidQueryException: unconfigured columnfamily profile

And by this way, I am trying to create connection/session initialization to Cassandra using Datastax java driver-

private CassandraDatastaxConnection() {

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

            throw new RuntimeException(e);
    }
}

I am running Cassandra 1.2.3. And I am able to connect to Cassandra using the above code. The only problem I am facing is while inserting.

The thing that I wanted to know is whether I can insert into Column Family (that I have created from CLI mode) using Datastax Java driver or not? As soon as I am trying to insert into Column Family which I have created in CLI mode, I always get the above exception.

But If I try to insert into another table that I have created in CQLsh mode, I am able to insert into that.

Any help will be appreciated.

回答1:

My guess: your CLI columnfamilies are in a different keyspace.