QueryCursor работает без режима транзакции, даже если транзакция напрямую объявлена.
Я использую get и put методы и напрямую объявляю транзакцию.Он работает нормально, то есть:
Ignite ignite = ...;
IgniteCache<String, String> cache = ...;
String key = ...;
String val= ...;
try (Transaction tx = ignite.transactions().txStart()) {
//get and put work within transaction
cache.get(key);
cache.put(key, val);
tx.commit();
}
Но когда я использую запрос , это работает без транзакции, т.е.
Ignite ignite = ...;
IgniteCache<String, String> cache = ...;
ScanQuery<String, String> query = ...;
try (Transaction tx = ignite.transactions().txStart()) {
try (QueryCursor<Cache.Entry<String, String>> cursor = cache.query(query)) {
//query works without transaction
Iterator<Cache.Entry<String, String>> iter = cursor.iterator();
Cache.Entry<String, String> entry = iter.next();
}
tx.commit();
}
Как связать QueryCursor к транзакции?