Хорошо, я решил свою проблему.Спасибо всем за вашу помощь.В целях дальнейшего разъяснения моего довольно сложного сомнения я напишу следующие рекомендации, которые следует учитывать при взаимозаменяемости попыток использовать Ignite SQL и Ignite Spring:
Вариант 1) Создание кэшейчерез Ignite Spring:
a) Четко определите имя кэша в классе репозитория:
...
@RepositoryConfig(cacheName = "My Cache Name")
public interface SampleTypeRepository extends IgniteRepository<SampleType, Integer> {
public SampleType getSampleTypeBySampleTypeId(Integer id);
}
b) Определите кэш и индексируйте его при настройке экземпляра Ignite в приложении Spring:
...
CacheConfiguration ccfg = new CacheConfiguration("My Chache Name");
// Setting SQL schema for the cache.
ccfg.setIndexedTypes(Integer.class, SampleType.class);
config.setCacheConfiguration(ccfg);
Ignite ignite = Ignition.start(config);
...
c) Сделайте запрос, но имейте в виду, что по какой-то причине имя таблицы SQL - "SampleType", а не "My Cache Name".Я не знаю, ehy, но, похоже, это поведение по умолчанию, которое я не нашел явно в документации Ignite Spring.В противном случае вы можете получить «таблица SQL не найдена для»:
...
IgniteCache cache = ignite.cache("My Chache Name");
SqlFieldsQuery sql = new SqlFieldsQuery("select * from SampleType");
try (QueryCursor<List<?>> cursor = cache.query(sql)) {
for (List<?> e : cursor)
System.out.println(e.get(1));
}
Вариант 2) Создание кешей с помощью DDL SQL:
a) Создайте таблицу / кеш SQLпутем четкого определения cache_name, key_type и value_type, используя полные имена пакетов для классов, соответствующих ключу и типам значений:
CREATE TABLE IF NOT EXISTS SampleType(SampleTypeID int, SampleTypeName varchar, PRIMARY KEY (SampleTypeID)) WITH "cache_name=mycachename, key_type=java.lang.Integer, value_type=local.teste.is.api.entities.SampleType";
b) Для вставки данных с помощью ignite Spring работает как шарм, используяМетоды API показаны в документации.Однако, вставляя через DDL или JDBC, вы должны четко определить атрибут _KEY (скрытый атрибут: P):
INSERT INTO SampleType(_KEY, SAMPLETYPEID, SAMPLETYPENAME) VALUES(?,?,?)
Затем, я думаю, вы можете использовать эти API взаимозаменяемо.
С уважением, Карлос Коста