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

时间:2016-04-08 20:33:57

标签: json cassandra cql cql3 datastax-java-driver

我挖掘了datastax的QueryBuilder源代码,我无法找到一种方法来查询:

select JSON * from myTable;

此外,创建子类来完成此操作相当容易,但com.datastax.driver.core.querybuilder.Select中的构造函数的包保护阻碍了这一点。

有没有办法进行此查询?

1 个答案:

答案 0 :(得分:1)

现在它不可能,但你可以使用新的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中公开了raw方法,因此这将成为未来此类问题的解决方法:

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