如何使用 java 驱动程序将单个元素添加到 CQL 集类型
How do you add a single element to a CQL set type using the java driver
我正在尝试使用 datastax java 驱动程序和绑定语句将单个元素添加到集合类型,即(以下语法未测试)
CREATE TABLE claims (
id bigint PRIMARY KEY,
claimed set<text>
);
UPDATE claims SET claimed = claimed + :claimed WHERE id = :id
当我运行我的BoundStatement
,我收到Codec not found for requested operation: [set<varchar> <-> java.lang.String]
我真的必须写一个编解码器吗?
CQL 将 (+
) 附加到 set
期望 set
。因此,驱动程序在这里期望 Set<String>
而不是 String
。要解决此问题,您需要将 String 值包装在一个集合中,即:
PreparedStatement prepared = session.prepare("UPDATE claims SET claimed = claimed + :claimed WHERE id = :id");
session.execute(prepared.bind(Collections.singleton("value"), id));
我正在尝试使用 datastax java 驱动程序和绑定语句将单个元素添加到集合类型,即(以下语法未测试)
CREATE TABLE claims (
id bigint PRIMARY KEY,
claimed set<text>
);
UPDATE claims SET claimed = claimed + :claimed WHERE id = :id
当我运行我的BoundStatement
,我收到Codec not found for requested operation: [set<varchar> <-> java.lang.String]
我真的必须写一个编解码器吗?
CQL 将 (+
) 附加到 set
期望 set
。因此,驱动程序在这里期望 Set<String>
而不是 String
。要解决此问题,您需要将 String 值包装在一个集合中,即:
PreparedStatement prepared = session.prepare("UPDATE claims SET claimed = claimed + :claimed WHERE id = :id");
session.execute(prepared.bind(Collections.singleton("value"), id));