如何使用java代码在cassandra中插入java列表值?

如何使用java代码在cassandra中插入java列表值?,java,cassandra,cqlsh,Java,Cassandra,Cqlsh,我的cassandra数据库结构: CREATE TABLE devjavasource.userorders ( user_id text PRIMARY KEY, name text, rlist list<text> ) WITH bloom_filter_fp_chance = 0.01 AND caching = {'keys': 'ALL', 'rows_per_partition': 'NONE'} AND comment = '' AND compaction = {

我的cassandra数据库结构:

CREATE TABLE devjavasource.userorders (
user_id text PRIMARY KEY,
name text,
rlist list<text>
) WITH bloom_filter_fp_chance = 0.01
AND caching = {'keys': 'ALL', 'rows_per_partition': 'NONE'}
AND comment = ''
AND compaction = {'class': 'org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy', 'max_threshold': '32', 'min_threshold': '4'}
AND compression = {'chunk_length_in_kb': '64', 'class': 'org.apache.cassandra.io.compress.LZ4Compressor'}
AND crc_check_chance = 1.0
AND dclocal_read_repair_chance = 0.1
AND default_time_to_live = 0
AND gc_grace_seconds = 864000
AND max_index_interval = 2048
AND memtable_flush_period_in_ms = 0
AND min_index_interval = 128
AND read_repair_chance = 0.0
AND speculative_retry = '99PERCENTILE';
然后我手动运行此查询到cql,得到以下错误:

句法异常:


由于列表是由字符串组成的,因此应该这样做:

INSERT INTO USERS (user_id, name, Rlist) VALUES ('11101', 'john', ['AUE', 'SAN', 'UK', 'LON']);
使用绑定标记:

List<String> list = new ArrayList<String>(); 
list.add("fake1@fake1.com"); 
list.add("fake2@fake2.com"); 
Statement st = new SimpleStatement("INSERT INTO USERS (user_id, name, rlist) VALUES ('11101', 'john', ?);", list); 
ResultSet rs = session.execute(st);
List List=new ArrayList();
列表。添加(“fake1@fake1.com"); 
列表。添加(“fake2@fake2.com"); 
语句st=新的SimpleStatement(“插入用户(用户id、名称、rlist)值('11101','john',?);”,列表);
ResultSet rs=session.execute(st);

在java中,如何创建带有单引号的字符串列表动态我得到了没有单引号的java列表,如何转换?我需要更多的信息。你在准备你的查询吗?如果您可以发布您试图插入的代码,我可以看一看;列表。添加(“fake1@fake1.com"); 列表。添加(“fake2@fake2.com"); 语句st=新的SimpleStatement(“插入用户(用户id、名称、Rlist)值('11101'、'john'、“+list+”);”);ResultSet rs=session.execute(st);尝试使用准备好的语句。他们可能会自动为您处理此问题。
INSERT INTO USERS (user_id, name, Rlist) VALUES ('11101', 'john', ['AUE', 'SAN', 'UK', 'LON']);
List<String> list = new ArrayList<String>(); 
list.add("fake1@fake1.com"); 
list.add("fake2@fake2.com"); 
Statement st = new SimpleStatement("INSERT INTO USERS (user_id, name, rlist) VALUES ('11101', 'john', ?);", list); 
ResultSet rs = session.execute(st);