代码之家  ›  专栏  ›  技术社区  ›  adapt-dev

有没有办法在CQL驱动程序中使用QueryBuilder执行“SELECT JSON…”?

  •  1
  • adapt-dev  · 技术社区  · 10 年前

    我翻遍了datastax的QueryBuilder源代码,我找不到一种查询方式,比如:

    select JSON * from myTable;
    

    此外,创建一个子类来实现这一点是相当容易的,但这受到了中构造函数的包保护的阻碍 com.datastax.driver.core.querybuilder.Select .

    有什么方法可以做这个查询吗?

    1 回复  |  直到 10 年前
        1
  •  1
  •   doanduyhai    10 年前

    现在不可能,但您可以使用新的 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);
    

    推荐文章