0

是否可以获得与查询或结果集相关的列名列表?我一直在阅读 joSQL 的文档,但我无法确定是否可行。我在 API 中看不到任何让我这样做的东西。但是当我调试打印查询和结果时,这些信息在类中。joSQL 有一个 ColumnReference 类,但我不知道它的用途,或者我什至可以访问此类的实例。谢谢

4

2 回答 2

1

您可以使用:Query.getColumns这将返回一个列表:SelectItemExpression然后您可以使用:getAlias在每个上返回“列”名称。

所以:

Query q = new Query ();
q.parse ("SELECT a FROM java.lang.String");

List cols = q.getColumns ();

for (int i = 0; i < cols.size (); i++)
{

    SelectItemExpresion sie = (SelectItemExpression) cols.get (i);

    System.out.println (i + ": " + sie.getAlias ());

}

当然,如果该列没有别名,那么您可以尝试改用该toString方法或四处挖掘Expression以找到更合适的数据。

于 2014-05-23T00:54:22.187 回答
0

不,不可能,joSQL 是 inMemory 过滤实用程序,它使用反射来过滤掉两个集合之间的数据。

JoSQL 目前支持以下 SQL 特性:

SELECT * (which means "return the object" that matches the where or having clause)
SELECT columns, SELECT function, SELECT expression (arithmetic and boolean), SELECT save value, SELECT bind variable, and any mixture of the previous items
于 2013-10-01T18:20:47.863 回答