Cassandra 是否可以插入一条记录,用set类型填充列<;文本>;使用一个准备好的语句?

Cassandra 是否可以插入一条记录,用set类型填充列<;文本>;使用一个准备好的语句?,cassandra,datastax,datastax-java-driver,Cassandra,Datastax,Datastax Java Driver,当记录包含一个集合并且打算应用于一个具有“集合”类型的字段时,是否可以使用准备好的语句插入该记录 我可以看看如何使用QueryBuilder.update来完成它- Update.Where setInsertionQuery = QueryBuilder.update(keyspaceName, tableName) .with(QueryBuilder.addAll("set_column", QueryBuilder.bindMarker())) .wh

当记录包含一个集合并且打算应用于一个具有“集合”类型的字段时,是否可以使用准备好的语句插入该记录

我可以看看如何使用QueryBuilder.update来完成它-

Update.Where setInsertionQuery = QueryBuilder.update(keyspaceName, tableName)
    .with(QueryBuilder.addAll("set_column", QueryBuilder.bindMarker()))
    .where(QueryBuilder.eq("id_column", QueryBuilder.bindMarker()));
                
PreparedStatement preparedStatement = keyspace.prepare(setInsertionQuery.toString());
Set<String> set = new HashSet<>(Collections.singleton("value"));
BoundStatement boundStatement = preparedStatement.bind(set,"id-value");
Update.Where setInsertionQuery=QueryBuilder.Update(keyspaceName,tableName)
.with(QueryBuilder.addAll(“set_column”,QueryBuilder.bindMarker()))
.where(QueryBuilder.eq(“id_列”,QueryBuilder.bindMarker());
PreparedStatement PreparedStatement=keyspace.prepare(setInsertionQuery.toString());
Set=newhashset(Collections.singleton(“value”));
BoundStatement BoundStatement=preparedStatement.bind(设置“id值”);

但是,QueryBuilder.addAll()方法返回一个赋值,该赋值似乎仅适用于QueryBuilder.update(),而不适用于QueryBuilder.insertInto()。有没有办法在一个步骤中插入该记录,或者我必须先调用QueryBuilder.insertInto(),同时将set列保留为空,然后用使用addAll()的后续调用to QueryBuilder.update()填充它?

我知道了如何做。关键是调用no arg PreparedStatement.bind(),然后通过调用setXXX方法将其链接起来,使用setSet()作为设置值。像这样的-

Insert insertSet = QueryBuilder.insertInto(tableName)
                .value("set_column", QueryBuilder.bindMarker("set_column"))
                .value("id_column", QueryBuilder.bindMarker("id_column")));
    
PreparedStatement preparedStatement = keyspace.prepare(setInsertionQuery.toString());
Set<String> set = new HashSet<>(Collections.singleton("value"));

BoundStatement boundStatement = preparedStatement.bind()
.setSet("id_column",set,String.class))
.setString("id_column", "id value"));
Insert insertSet=QueryBuilder.insertInto(tableName)
.value(“set\u列”,QueryBuilder.bindMarker(“set\u列”))
.value(“id_列”,QueryBuilder.bindMarker(“id_列”);
PreparedStatement PreparedStatement=keyspace.prepare(setInsertionQuery.toString());
Set=newhashset(Collections.singleton(“value”));
BoundStatement BoundStatement=preparedStatement.bind()
.setSet(“id_列”,set,String.class))
.setString(“id_列”、“id值”);