SqlQueryはselect *
で始まるSQLのみをサポートしていますか? select id, name from person
のようないくつかの列だけを選択し、列を対応するPOJOにマップする他のSQLをサポートしていませんか?SqlQueryとSqlFieldsQuery
SQLを実行するためにSqlFieldQueryを使用すると、結果はListのQueryCursor(各リストに結果のレコードが1つあります)です。 SQLはselect *
で始まる場合、このリストの内容は、のようなフィールドクエリと異なるだろう。しかし:最初elmentがある
:
select *
についてはselect id,name,age from person
、各リストには3つの部分で構成されていますキャッシュ
第二の要素のキーは、データ
テーリング要素が含まれているPOJOオブジェクトであります各列の値です。
なぜこのように設計されましたか? SqlFieldsQueryが実行しているSQLがわからない場合は、Listに含まれている内容を理解するためにさらに努力する必要があります。
トム、IGNITE JIRAに同じチケットがあります。例:https://issues.apache.org/jira/browse/IGNITE-3466回避策として、列のリストを指定してスターシンボルを使用しないでください。ありがとう@ kuaw26。 – kuaw26
'select *'が返る最初の2つの列がKとVの別の場合です – Tom