mel*_*mel 4 java cql cassandra
我是cassandra的新手,我尝试将一组数据添加到表中.我的表看起来像:
CREATE TABLE myTable (id int, name varchar, mySet set<uuid>, PRIMARY KEY (id));
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是当我做我的请求时,类型不兼容,Java中的集合的字符串表示是[uuid1,uuid2,...],而cql中的表示是{'uuid1','uuid2', ...}
session.execute("INSERT INTO myTable (id , name, mySet) VALUES (" + myID + ", '" + myName +"' ," + mySet + ");");
Run Code Online (Sandbox Code Playgroud)
所以,如果有一个函数或库可以直接解决这个问题,你知道吗?非常感谢.
而不是将设置内容附加到查询字符串(使用set .toString()实现),您可以改为执行以下操作(需要cassandra 2.0+):
session.execute("INSERT INTO myTable (id, name, mySet) VALUES (?, ?, ?));", myId, myName, mySet);
Run Code Online (Sandbox Code Playgroud)
然后,驱动程序将为您正确注入Set.您还可以考虑使用BoundStatement或QueryBuilder来完成此任务.