有没有办法在 CQL 驱动程序中使用 QueryBuilder 执行 "SELECT JSON ..."?

Is there a way to perform "SELECT JSON ..." with the QueryBuilder in the CQL drivers?

我仔细研究了 datastax 的 QueryBuilder 源代码,但找不到像这样的查询方法:

select JSON * from myTable;

此外,创建一个子类来执行此操作相当容易,但这会因 com.datastax.driver.core.querybuilder.Select 中构造函数的包保护而受阻。

有什么办法可以查询吗?

目前还不可能,但您可以使用新的 select().raw() 方法注入任意字符串,例如 "JSON *".

查看这个JIRA的解析:https://datastax-oss.atlassian.net/browse/JAVA-1086


添加了新语法:

select()
    .cast(fcall("writetime", column("country")), DataType.text())
    .from("artists").limit(2);

我还在顶层公开了原始方法API,所以这将作为未来此类问题的解决方法:

select = select().raw("CAST(writetime(country) AS text)").from("artists").limit(2);