我从 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:未配置的列族配置文件
通过这种方式,我正在尝试使用 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 驱动程序插入列族(我从 CLI 模式创建的)?一旦我尝试插入在 CLI 模式下创建的列族,我总是会遇到上述异常。
但是,如果我尝试插入到我在 中创建的另一个表中CQLsh mode
,我可以插入到该表中。
任何帮助将不胜感激。