похоже, что SqlQuery поддерживает только sql, который начинается с select *
? Разве он не поддерживает другой sql, который выбирает только некоторые столбцы, такие как select id, name from person
и сопоставляет столбцы с соответствующим POJO?SqlQuery и SqlFieldsQuery
Если я использую SqlFieldQuery для запуска sql, результатом является QueryCursor List (каждый список содержит одну запись результата). Но если SQL начинается с select *
, содержимое этот список был бы отличаться от поля запроса, как: select id,name,age from person
Для select *
, каждый Список строится с 3-х частей:
первый elment является ключ кэша
второй элемент является объектом POJO, который содержит данные
хвостохранилище элементом - значения для каждого столбца.
Почему это было спроектировано? Если я не знаю, что sql, что SqlFieldsQuery работает, то мне нужно дополнительное усилие, чтобы выяснить, что содержит список.
Том, там же билеты в IGNITE JIRA. Например: https://issues.apache.org/jira/browse/IGNITE-3466 В качестве обходного пути вы можете указать список столбцов и не использовать символ звезды. – kuaw26
Спасибо @ kuaw26. Другое дело, что первые два столбца, которые 'select *' return являются K и V – Tom